我在IIS上运行Angular 5应用程序(使用CLI创建)。我也懒得加载我的许多模块。如果你使用一个深度的网址,一切都运行良好,但如果你超过一个级别,没有任何东西加载。
所以如果我键入xyz.com/abc - abc模块加载并且一切正常 如果我键入xyz.com/abc/efg - 那么我得到的只是基本index.html,没有任何加载路由信息。
在开发和在IIS上运行时都会发生这种情况。在查看浏览器控制台时,我发现加载捆绑包和块时遇到了问题。所以对于IIS我添加了一些额外的规则,但它永远不会走我的路线。
寻找下一步尝试的想法。
<rules>
<rule name="API Rule" enabled="true" stopProcessing="true">
<match url="^(api)(.*)$" />
<action type="None" />
</rule>
<rule name="Bundle Rule" enabled="true" stopProcessing="true">
<match url="([^\/]+.bundle.*$)" />
<action type="Rewrite" url="/{R:0}" />
</rule>
<rule name="Assets Rule" enabled="true" stopProcessing="true">
<match url="(?=.*\b\/assets\/\b)(.*$)" />
<action type="Rewrite" url="/assets/{R:1}" />
</rule>
<rule name="Chunk Rule" enabled="true" stopProcessing="true">
<match url="([^\/]+.chunk.*$)" />
<action type="Rewrite" url="/{R:0}" />
</rule>
<rule name="AngularRoutesRewrite" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>