【问题标题】:How can I run Angular in a production environment?如何在生产环境中运行 Angular?
【发布时间】:2019-06-23 11:53:56
【问题描述】:

我目前正在使用以下命令从具有http-server 的服务器提供Angularhttp-server ./ index.html

这很好地服务于 Angular 应用程序。链接点击有效。虽然如果我像在url.com/route-name 中那样直接输入带有/route-nameURL,应用程序就会崩溃。

我使用的是lite-server,但lite-server 文档建议仅在开发中使用它。使用lite-server时,我可以直接输入URLroute,效果很好。

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

【问题讨论】:

  • 您需要您的服务器将与现有文件不匹配的 URL 重定向到 index.html 以便 Angular 可以将它们视为路由,如果 http-server 没有该选项,您可能需要查找不同的服务器

标签: angular httpserver


【解决方案1】:

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

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

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

server {
    error_page 404 =200 /index.html
    # other conf
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 2020-07-28
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多