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?
我在 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?