gpt4 book ai didi

url-rewriting - url 重写规则不会忽略对文件的请求

转载 作者:行者123 更新时间:2023-12-04 05:52:34 24 4
gpt4 key购买 nike

http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

    <rule name="AngularJS Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

</conditions>
<action type="Rewrite" url="/index.html" />
</rule>

以上是为 angular 单页应用程序广泛建议的几种 url 重写规则之一。
我理解这条规则的意思是“如果请求不是针对物理文件,请将 url 重写为/index.html。

摘自上述文档链接:“这可用于指定检查请求的 URL 是否不是文件的条件...”

在 index.html 我有这个脚本引用:
<script src="lib/jquery/dist/jquery.min.js"></script>

这是一个物理文件,它确实存在于指定位置的磁盘上。
重写规则接收这个请求并将其重写到/index.html。
为什么会这样?
我的 web.config 与 wwwroot 位于同一级别。

github 上有几个与 url 重写相关的线程,不确定是否涵盖了这个特定问题:
https://github.com/aspnet/BasicMiddleware/issues/43
https://github.com/aspnet/IISIntegration/issues/164
https://github.com/aspnet/IISIntegration/issues/192

最佳答案

IsFile 将不起作用,因为该文件不在 IIS 预期的位置。对于 Asp.Net 4 应用程序,index.html 文件将位于站点根目录中,但对于 Asp.Net Core 应用程序,该文件位于子目录中。

尝试改用新的 Rewrite 中间件,它知道文件在新的 Asp.Net Core 布局中的位置。
https://github.com/aspnet/BasicMiddleware/blob/dev/samples/RewriteSample/Startup.cs#L16

关于url-rewriting - url 重写规则不会忽略对文件的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com