我目前使用以下命令从具有http-server
的服务器提供Angular
: http-server ./ index.html
。
这对Angular应用程序很好。 链接点击工作。 虽然我在url.com/route-name
直接输入带有/route-name
的URL
,但应用程序崩溃了。
我使用的是lite-server
但推荐的lite-server
文档只在开发中使用它。 使用lite-server
,我可以直接输入一个带有route
的URL
,它可以正常工作。
如何配置http-server
以便能够使用页面路由输入URL地址,或者在生产环境中运行Angular
另一种好方法是什么?
正如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。