如何让IIS尊重相对路径?

阿门

在 IIS 10 中,我在端口 4553 上运行了一个网站。这个网站在本地运行良好。因为我想将该网站公开给最终用户,所以我需要:

  1. 通过 Azure 应用程序网关使其可用。
  2. 使用 URL 中的深层链接将端口 4553 路由到 443,因为最终用户的代理仅允许通过端口 443 的流量。我无法将端口 443 设为 IIS 解决方案的默认端口,因为端口 443 已被另一个 Web 解决方案占用.

我得到了这一切:

例如,登陆页面包含:

@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.dataTables.min.js"></script>

AAG/IIS 不了解此路径。虽然登陆页面可以工作,但 IIS 会尝试在“ https://external.website.com/Scripts/jquery.dataTables.min.js ”中找到 jquery 脚本,而它应该是“ https://external.website .com/iis/solution/Scripts/jquery.dataTables.min.js " 所以脚本不尊重iis/solutionURL中的添加

当我手动将其更改为

<script src="~/iis/solution/Scripts/jquery.dataTables.min.js">
</script>"

它确实有效。

但是为所有 HTML 和其他源文件更改此设置太多了。此外,每次 IIS 解决方案确实需要更新时,它都无法进行这些更改。

我的问题; 是否有更高级别的内容可以在 IIS 设置或登录页面中进行更改,以确保文件取自正确的路径?或者是否可以选择更改物理路径?

Jokies Ding

您是否将应用程序托管在虚拟目录而不是应用程序“解决方案”下?如果是这样,IIS 将无法加载正确的 URL。

请确保您将项目托管在虚拟应用程序中,而不是文件夹或虚拟目录中。

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/

如果你不想这样做,你可以<script>用出站规则重写 html标签。在呈现的 html 页面中,它应该看起来像

你可以将它重写为

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-module

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章