2017-06-05 30 views
0

在IIS 8.5中,我有一個默認網站,在該網站下有多個應用程序。其中幾個應用程序實際上是爲不同的用戶組部署的相同網站代碼,每個代碼指向具有不同配置的不同數據庫等等。IIS應用程序根目錄的相對鏈接

是否可以在我的網站上創建一個鏈接到應用程序根目錄而不是WEBSITE的超鏈接?如果我使用類似<a href="/" >Go Home</a>的東西,那麼點擊鏈接不會導航到http://myserver/myapplication,它鏈接到http://myserver

很明顯,我可以硬編碼鏈接,但這意味着必須編輯每個網站部署的代碼。我可以通過將根URL存儲在配置文件中來解決這個問題,也許這是實現我所需要的唯一方法,但它看起來過於複雜!當我在我的開發機器上調試時運行網站時,URL類似於http://localhost:12345(即沒有應用程序名稱),所以即使我在某處存儲了根URL,它也不會無需額外工作即可開發。

我知道我可以使用像<a href="../">Go Home</a>這樣的相對路徑向上導航一定數量的級別,但我試圖在自定義錯誤頁面上使用此鏈接,所以理想情況下我希望它能夠工作,即使用戶不知何故導航到http://myserver/myapplication/foo/bar/foo/bar/foo/bar,在這種情況下,我的鏈接需要導航六個級別。關鍵是,我不知道包含鏈接的頁面有多少層次可能。

我天真地認爲應該有一個快捷方式,以<a href="/"...的方式到達應用程序根目錄,但看起來我錯了!

+0

什麼版本MVC? –

回答

1

此前4版,你可以使用下面的代碼:

<a href="Url.Content("~/") ">Root</a> 

隨着4及更高版本,自動查找波浪的所以你可以:

<a href="~/">Root</a> 
+0

我認爲有沒有辦法在純HTML文件(而不是cshtml)中實現這一點?我試圖在自定義錯誤頁面中使用它,並且我希望它不要使用MVC路由或Razor,以便儘可能保持工作,即使應用程序的配置出現問題也是如此。 –

+0

不,它不可能通過純html。 –

相關問題