Angular 2 路由引发 404 错误

Angular 2 routing raising 404 errors

HTML5 PushState 表示 刷新 URL 或在浏览器中直接输入 URL 完美当我 运行 我的 angular 应用程序使用来自 VS 2015 命令提示符的 'npm start' 命令时很好。但是,当我在 IIS 上部署相同的应用程序并将 <base href="/"/> 更改为 <base href="/MyVirtualApplication/" /> 然后 HTML5 的 PushStateHistory API 无法正常工作并引发 404 错误。

请提出建议。

编辑:Url 重写的 IIS 设置:

您需要安装它才能进行以下工作:http://www.iis.net/downloads/microsoft/url-rewrite

第一步:

第二步:

我找到了一个 link 来解释解决方案:https://whosebug.com/posts/12614072/

:

虽然 运行 在 npm 设置的开发环境之外使用 Angular 2 构建的任何应用程序,您必须将 <base href="/"> 替换为:

<script>document.write('<base href="' + document.location + '" />');</script>

注意:这仅适用于生产环境或 运行 在 npm 环境之外。

我想我在对 nodejs 有了基本的了解并将其与 Angular2 一起使用后得到了答案。

基本上,nodejs - expressjs 本身是一个网络服务器,当我们执行命令 npm start 时,网络服务器启动并在定义的端口上列出。而且它不需要任何额外的服务器。