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 的 PushState 或 History 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 时,网络服务器启动并在定义的端口上列出。而且它不需要任何额外的服务器。
HTML5 PushState 表示 刷新 URL 或在浏览器中直接输入 URL 完美当我 运行 我的 angular 应用程序使用来自 VS 2015 命令提示符的 'npm start'
命令时很好。但是,当我在 IIS 上部署相同的应用程序并将 <base href="/"/>
更改为 <base href="/MyVirtualApplication/" />
然后 HTML5 的 PushState 或 History 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 时,网络服务器启动并在定义的端口上列出。而且它不需要任何额外的服务器。