如何在生产环境中运行角度2?

mon*_*nie 5 httpserver angular

我目前正在使用以下命令Angular在服务器上运行http-server:http-server ./ index.html.

这适用于角度细.链接点击工作.虽然如果我直接进入URLa .该应用程序崩溃./route-nameurl.com/route-name

我正在使用,lite-serverlite-server建议的文档只在开发中使用它.使用时lite-server,我可以直接输入一个URL,route它工作正常.

如何配置http-server能够使用页面路由输入URL地址,或者Angular在生产环境中运行的另一种好方法是什么?

Sca*_*ave 0

正如mzulch所说,您需要一个可以将找不到的url重定向到index.html的服务器。您无法加载网址,因为当您输入此网址时,角度路由器未加载。因此它无法拦截请求,并且浏览器会显示 404 未找到错误。 lite-server是开发过程中测试的完美服务器。

在生产中,您可以配置 nginx 服务器将所有 404 请求重定向到 index.html,然后由您的 Angular 路由器负责处理真正的 404

在 nginx 配置中,您可以这样定义:

server {
    error_page 404 =200 /index.html
    # other conf
}
Run Code Online (Sandbox Code Playgroud)

这会将所有 404 错误重定向到您的 index.html 并将 404 错误代码转换为 200。