如何在生产环境下运行Angular?

5

我目前使用以下命令从服务器上使用 http-server 提供 Angular 应用程序:http-server ./ index.html

这可以正常提供 Angular 应用程序,链接点击正常。但是,如果我直接输入带有 /route-nameURL,如 url.com/route-name,则应用程序会崩溃。

我曾经使用 lite-server,但是 lite-server 文档建议仅在开发中使用它。当使用 lite-server 时,我可以直接输入带有路由的 URL,并且它可以正常工作。

我该如何配置 http-server,以便能够输入带有页面路由的 URL 地址或者有哪些其他好的方法可以在生产环境中运行 Angular?


3
您需要让您的服务器将不匹配现有文件的URL重定向到index.html,以便Angular可以将它们视为路由。如果“http-server”没有此选项,则可能需要找到其他服务器。 - mzulch
1个回答

0
如mzulch所说,您需要一个服务器,可以将未找到的url重定向到index.html。 当您输入此url时,无法加载url,因为angular路由器未加载。因此,它无法拦截请求,浏览器显示404未找到错误。 lite-server是在开发期间进行测试的完美服务器。
在生产中,您可以配置nginx服务器将所有404请求重定向到index.html,然后由您的angular路由器处理真正的404。
在nginx配置中,您可以这样定义:
server {
    error_page 404 =200 /index.html
    # other conf
}

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接