2015-10-15 66 views
0

我有一個.NET webforms應用程序,其中的實例通常在IIS 7中使用主機名部署,如下所示:「[appname] .dinamiks.com」。我現在需要像這樣部署它們:「trial.dinamiks.com/[appname]/」。如何將html根引用指定爲應用程序根目錄(IIS)?

當我這樣做時,問題是應用程序中的根目錄有很多url引用,例如< img href =「/ images/logo.png」/ >這當然指向「trial.dinamiks」。 com/images/logo.png「而不是我需要它指向的地方:」trial.dinamiks.com/[appname]/images/logo.png「。

是否有任何可能的解決方案來解決這個問題,而不必將所有的URL改爲相對路徑,還是唯一的方法?

感謝

UPDATE

在我的部分錯誤的例子。我希望不需要在應用程序中更改網址,因爲這樣做可以完全改變它們。有沒有辦法做到這一點與URL重寫可能?

回答

0

我設法找到一個解決方案,通過建立在IIS 7 出站URL重寫規則我所有打勾的選項爲「匹配內容內:「除了」使用自定義標籤「

匹配的正則表達式爲:(?!^\/appname)(^\/.*)

這開始/而與啓動任何路徑相匹配/應用程序的名字

重寫值是:在任何初始值是前/appname{R:0}

這增加/應用程序的名字。

重寫規則出現在Web.config如下:

<outboundRules> 
     <rule name="add app root"> 
      <match filterByTags="A, Area, Base, Form, Head, Img, Input, Link, Script" pattern="(?!^\/testapp)(^\/.*)" negate="false" /> 
      <action type="Rewrite" value="/testapp{R:0}" /> 
     </rule> 
</outboundRules> 
-1

而不是

<img href="/images/logo.png"/> 

使用

<img src="~/images/logo.png" /> 
+0

感謝你好。我知道這一點,但是在.net文檔中它說:「〜操作符只能識別服務器控件和服務器代碼,不能使用〜運算符來處理客戶端元素。」當我在本地機器上測試代碼時,它不適用於客戶端元素。它在生產環境中測試時確實工作,但我確實需要它在本地工作以用於測試目的。 –

相關問題