Angular 在 IIS 上使用 JS 或 PNG 作为路由的子字符串进行路由

Angular routing with JS or PNG as substrings in route on IIS

我在 IIS 上 运行 一个 Angular 网站。

我定义了路由并使用了 webconfig - 几乎一切正常:

export const routes: Routes = [
  { path: '', component: PageMainComponent },
  { path: 'singlekey', component: PageSingleKeyComponent },
  { path: 'singlekey/:lizKey', component: PageSingleKeyComponent },      
  { path: '**', redirectTo: '' },
];

web.config:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="SPA" stopProcessing="true">
          <match url="^(?!.*(.js|.css|.png|.jpg|.ico|.svg)).*$" />
          <conditions logicalGrouping="MatchAll">
          </conditions>
          <action type="Rewrite" url="/"  appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

如果我使用 URL 比如:

https:///domain/singlekey/DE1234

DE1234 作为参数 lizKey 正确传递给 page/component。

但是如果路由的最后一部分包含 PNG 或 JS,我会从 IIS 收到 404 错误:

https:///domain/singlekey/JS1234

这是我必须在 web.config 中澄清的东西,还是我必须在 angular 的路由中配置的东西?

请尝试将 .js 更改为 .js 并将 .css 更改为 .css?