将包罗万象的 RewriteRule 与 PhysicalFileSystem 相结合
Combine catch-all RewriteRule with PhysicalFileSystem
我正在 Angular 2
后端项目的 Angular 2
前端工作。在这个项目中,我配置了一种指向我的 dist
文件夹的 wwwroot
(感谢 )。
但由于它是一个 Angular 2
项目,我还将所有内容重定向到 index.html
页面
<rule name="AngularJS" stopProcessing="true">
<match url="[a-zA-Z]*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/oauth" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
现在我的问题是,由于我添加了 PhysicalFileSystem,所以我无法再检索我的捆绑文件。我正在请求 main.bundle.js
(位于 dist/main.bundle.js
),由于文件系统,它应该被正确检索,但对我来说不幸的是,它被 RewriteRule 捕获并且它只是呈现 index.html页。
如何确定它的优先级?
长话短说;博士
将所有内容重定向到 index.html,但在 dist 下也有一个逻辑根文件夹。希望我的服务器从 dist 检索所有内容,但它属于 RewriteRule,因为它实际上不存在。
对于我们遇到同样问题的那些人,问题只是因为这些文件实际上并不存在,对它们的每个请求都被重定向到 index.html
。
为了解决这个小问题,我只是在我的 RewriteRule 中添加了一个小例外来处理对静态文件的请求,现在我的系统可以正常工作了!
<add input="{REQUEST_URI}" pattern="^.*\.(jpg|css|js|gif|png|eot|ttf|woff)$" negate="true" />
我正在 Angular 2
后端项目的 Angular 2
前端工作。在这个项目中,我配置了一种指向我的 dist
文件夹的 wwwroot
(感谢
但由于它是一个 Angular 2
项目,我还将所有内容重定向到 index.html
页面
<rule name="AngularJS" stopProcessing="true">
<match url="[a-zA-Z]*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/oauth" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
现在我的问题是,由于我添加了 PhysicalFileSystem,所以我无法再检索我的捆绑文件。我正在请求 main.bundle.js
(位于 dist/main.bundle.js
),由于文件系统,它应该被正确检索,但对我来说不幸的是,它被 RewriteRule 捕获并且它只是呈现 index.html页。
如何确定它的优先级?
长话短说;博士 将所有内容重定向到 index.html,但在 dist 下也有一个逻辑根文件夹。希望我的服务器从 dist 检索所有内容,但它属于 RewriteRule,因为它实际上不存在。
对于我们遇到同样问题的那些人,问题只是因为这些文件实际上并不存在,对它们的每个请求都被重定向到 index.html
。
为了解决这个小问题,我只是在我的 RewriteRule 中添加了一个小例外来处理对静态文件的请求,现在我的系统可以正常工作了!
<add input="{REQUEST_URI}" pattern="^.*\.(jpg|css|js|gif|png|eot|ttf|woff)$" negate="true" />