.net 如何使html根引用应用程序根(IIS)?

.net 如何使html根引用应用程序根(IIS)?,.net,iis,.net,Iis,我有一个.NET webforms应用程序,其中一个实例通常部署在IIS 7中,主机名如下:“[appname].dinamiks.com”。我现在需要这样部署它们:“trial.dinamiks.com/[appname]/” 当我这样做时,问题是应用程序中有许多对根目录的url引用,例如,它当然指向“trial.dinamiks.com/images/logo.png”,而不是我需要它指向的地方:“trial.dinamiks.com/[appname]/images/logo.png” 是

我有一个.NET webforms应用程序,其中一个实例通常部署在IIS 7中,主机名如下:“[appname].dinamiks.com”。我现在需要这样部署它们:“trial.dinamiks.com/[appname]/”

当我这样做时,问题是应用程序中有许多对根目录的url引用,例如,它当然指向“trial.dinamiks.com/images/logo.png”,而不是我需要它指向的地方:“trial.dinamiks.com/[appname]/images/logo.png”

是否有任何可能的解决方案来解决这个问题,而不必将所有URL更改为相对路径,或者这是唯一的方法

谢谢

更新

我这方面的坏榜样。我希望不必更改应用程序中的URL,因为有很多URL,而更改所有URL将是一项相当大的任务。有没有可能通过URL重写来实现这一点?

而不是

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

通过在IIS 7中创建出站URL重写规则,我找到了一个解决方案。 我勾选了“匹配内的内容:”的所有选项,但“使用自定义标记”除外

要匹配的正则表达式是:
(?!^\/appname)(^\/.*)

这匹配以/开头但不以/appname开头的任何路径

重写值为:
/appname{R:0}

这将在原始值之前添加/appname

重写规则显示在Web.config中,如下所示:

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

你好,谢谢。我知道这一点,但是在.net文档中说,“~operator只能在服务器控件和服务器代码中识别。不能在客户端元素中使用~operator。”当我在本地计算机上测试代码时,它不能与客户端元素一起工作。当在生产环境中测试时,它确实可以工作,但是为了测试的目的,我确实需要它在本地工作。
<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>