如何让html根引用应用程序根(IIS)?

mzsu5hc0  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(110)

我有一个.NET webforms应用程序,其中的示例通常部署在IIS 7中,主机名如下:“[appname]. www.example.com ”。我现在需要这样部署它们:“trial.example.com/[appname]/"。
当我这样做时,问题是在应用程序e中有很多对根目录的url引用。g,其当然指向“ www.example.com ”而不是我需要它指向的位置:“trial.example.com/[appname]/images/logo.png”。
是否有任何可能的解决方案来解决这个问题,而不必将所有的URL更改为相对路径,或者这是唯一的方法?
谢谢

更新

我做了个坏榜样。我希望不必改变应用程序中的网址,因为有很多,这将是一个相当大的承诺,改变他们所有。有没有一种方法可以做到这一点与URL重写可能?

cclgggtu

cclgggtu1#

我设法找到了一个解决方案,通过在IIS 7中创建出站URL重写规则。除了“使用自定义标签”之外,我勾选了“匹配内的内容:”的所有选项
要匹配的正则表达式为:(?!^\/appname)(^\/.*)
这匹配任何以/开头但不以/appname开头的路径
重写值为:/appname{R:0}
这会在原始值之前添加/appname。
重写规则出现在Web中。配置如下:

<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>
3phpmpom

3phpmpom2#

而不是

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

使用

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

相关问题