我正在Angular 2
后端项目的ASP.NET 4.5
前端工作。在这个项目中,我已经配置了一种wwwroot
(感谢this tutorial)指向我的dist
文件夹。
但由于它是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,我无法再检索我的bundle文件。我请求main.bundle.js
(位于dist/main.bundle.js
),这应该通过文件系统正确检索,但不幸的是,它被RewriteRule抓住它只是渲染我index.html页面。
如何确定优先级?
TL; DR 将所有内容重定向到index.html,但在dist下也有一个逻辑根文件夹。希望我的服务器从dist检索所有内容,但它属于RewriteRule,因为它实际上并不存在。
答案 0 :(得分:0)
对于那些我们遇到同样问题的人来说,问题只是因为这些文件实际上并不存在,每个请求都被重定向到index.html
。
为了解决这个小问题,我只是在我的RewriteRule中添加了一个小例外来处理对静态文件的请求,这现在使我的系统工作了!
<add input="{REQUEST_URI}" pattern="^.*\.(jpg|css|js|gif|png|eot|ttf|woff)$" negate="true" />