我目前正使用以下命令在Angular 2
的服务器上运行http-server
:http-server ./ index.html
。
这适用于棱角分明。链接点击工作。虽然如果我直接输入url
/route-name
,就像url.com/route-name
一样。该应用程序崩溃。
我使用的是lite-server
,但lite-server
文档建议仅在开发中使用它。使用lite-server
时,我可以直接输入url
route
并且工作正常。
如何配置http-server
能够使用页面路由输入网址,或者在生产环境中运行angular 2
的另一种好方法是什么?
答案 0 :(得分:0)
正如mzulch所说,你需要一个能够重定向未找到index.html的url的服务器。 您无法加载网址,因为输入此网址时未加载角度路由器。因此它无法拦截请求,浏览器显示404未找到错误。 lite-server是一个在开发过程中进行测试的完美服务器。
在生产中,您可以配置一个nginx服务器,将所有404请求重定向到index.html,然后由角度路由器负责处理真正的404
在nginx配置中,您可以这样定义:
server {
error_page 404 =200 /index.html
# other conf
}
这会将所有404错误重定向到index.html,并将404错误代码转换为200。