我试图通过关注这两个帖子来设置我的IIS以支持推送状态。 Configure IIS server to work with Aurelia framework and push state
https://gist.github.com/jdmonty/8e579b3b7c19ad80b78a
但是每当我尝试访问像localhost / app / myroute这样的路由时,IIS认为myroute
是一个静态文件,IIS返回404
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
我在我的网站中发现Handler Mappings是一个静态文件处理程序,其规则为*
,我想这是处理我的请求,因为它没有扩展名。我尝试删除规则并尝试将规则编辑为*.*
以强制扩展,但似乎都不起作用。这是我目前的网络配置重写规则
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="api.*" negate="true" />
</conditions>
<action type="Rewrite" url="/app/" />
</rule>
答案 0 :(得分:0)
我使用反应路由器中的useBaseName
和index.html文件中的<base href="/app">
组合解决了这个问题。
看到发生的事情是我的index.html中的所有静态资源都是没有设置<base href>
的问题,导致规则触发而没有给我正确的资源。