如何使 IIS 尊重相对路径?
How to make IIS respect relative path?
在 IIS 10 中,我 运行 在端口 4553 上有一个网站。该网站在本地运行良好。因为我想把这个网站暴露给最终用户,我需要:
- 通过 Azure 应用程序网关使其可用。
- 使用 URL 中的深层链接将端口 4553 路由到 443,因为最终用户的代理只允许通过端口 443 的流量。我无法将端口 443 设置为 IIS 解决方案的默认端口,因为端口 443 已被另一个 Web 解决方案占用。
我已经搞定了:
- https://localhost:4553 → VM 本地工作
- https://external.website.com/iis/solution/ → 可访问并显示登录页面,但路径不正确。
着陆页示例包含:
@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”
所以脚本不考虑在 URL.
中添加 iis/solution
当我手动改成
<script src="~/iis/solution/Scripts/jquery.dataTables.min.js">
</script>"
确实有效。
但是要对所有 HTML 和其他源文件进行更改太多了。此外,它无法在每次 IIS 解决方案确实需要更新时进行这些更改。
我的问题;是否有更高级别的内容我可以在 IIS 设置或登录页面中更改,以确保文件是从正确的路径获取的?或者是否可以选择更改物理路径?
您是否在虚拟目录而不是应用程序 "solution" 下托管应用程序?如果是这样,IIS 将无法加载正确的 URL.
请确保您在虚拟应用程序而不是文件夹或虚拟目录中托管项目。
https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/
如果您不想这样做,您可以用出站规则重写 html <script>
标签。在呈现的 html 页面中,它应该看起来像
您可以将其重写为
在 IIS 10 中,我 运行 在端口 4553 上有一个网站。该网站在本地运行良好。因为我想把这个网站暴露给最终用户,我需要:
- 通过 Azure 应用程序网关使其可用。
- 使用 URL 中的深层链接将端口 4553 路由到 443,因为最终用户的代理只允许通过端口 443 的流量。我无法将端口 443 设置为 IIS 解决方案的默认端口,因为端口 443 已被另一个 Web 解决方案占用。
我已经搞定了:
- https://localhost:4553 → VM 本地工作
- https://external.website.com/iis/solution/ → 可访问并显示登录页面,但路径不正确。
着陆页示例包含:
@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” 所以脚本不考虑在 URL.
中添加iis/solution
当我手动改成
<script src="~/iis/solution/Scripts/jquery.dataTables.min.js">
</script>"
确实有效。
但是要对所有 HTML 和其他源文件进行更改太多了。此外,它无法在每次 IIS 解决方案确实需要更新时进行这些更改。
我的问题;是否有更高级别的内容我可以在 IIS 设置或登录页面中更改,以确保文件是从正确的路径获取的?或者是否可以选择更改物理路径?
您是否在虚拟目录而不是应用程序 "solution" 下托管应用程序?如果是这样,IIS 将无法加载正确的 URL.
请确保您在虚拟应用程序而不是文件夹或虚拟目录中托管项目。
https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/
如果您不想这样做,您可以用出站规则重写 html <script>
标签。在呈现的 html 页面中,它应该看起来像
您可以将其重写为