2011-06-23 72 views
1

對MVC當前的應用程序可以通過URL等訪問: www.someserver.com/myapplicationASP.net MVC更改應用程序的URL

現在有將其更改爲新的URL的請求: www.someserver.com/NEWFOLDER/myapplication

所以我的問題是如何將MVC的行爲,我將不得不作出任何路由更改?

謝謝!

回答

5

如果你的鏈接是相對於應用程序,例如

<a href="@Url.Content("~/myAreaName/index/")">My Area</a> 

,那麼你不應該有任何問題。

如果你使用網站相關鏈接,

<a href="/myAreaName/index/">My Area</a> 

他們會打破。

+0

如果我有「../Content/Images/myImage.gif」? – JackMith

+0

這就是文件夾相對(.. =「從這裏往上走」),所以它*應該*工作。試試看看。 –

0

只要您的應用程序根目錄移動(即在IIS中)以及您的URL全部在輔助方法中正確指定,並在適當的位置添加了前綴「〜」,就不應該這樣做。

例如,指定爲「〜/ images/foo.jpg」的MVC應用中的URL將在您當前的方案中解析爲「www.someserver.com/images/foo.jpg」。在新計劃下,如果重新植入IIS,它將解析爲「www.someserver.com/NEWFOLDER/images/foo.jpg」。

但是,如果您使用了絕對或嚴格的相對URL,那麼您可能會運氣不佳。

2

@David有正確的解決方案。我還將URL的配置文件保存爲應用程序設置,以便在某些情況下使用。

<%: ConfigurationManager.AppSettings["WebsiteURL"] %>/Content/Images/a.png 
+0

早些時候我們在配置中使用了它,但後來我們改變了。它現在是myVirtualDirectory = String.Concat(lProtocolName + HttpContext.Current.Request.ServerVariables(「SERVER_NAME」),HttpContext.Current.Request.ApplicationPath,「/」).....我希望作品 – JackMith