部署后Angular 5路由不起作用

石像鬼

在我的Angular 5应用程序中,我一直通过本地运行,ng serve并且一切正常。所以我做了ng build -prod然后将dist文件夹上传到我的网络服务器。

主页会打开并正确显示,但是我尝试执行的任何路由均会导致404错误。我不知道如何调试/修复此问题。

迈克尔·索拉蒂

因此首先,如上所述,您将需要确保使用[routerLink]指令在应用程序内部进行路由。href基本上,使用s告诉浏览器导航到新路线,结果将向服务器请求该页面并呈现新内容(这就是您获得的原因404,该路线没有在服务器上,它只是由Angular应用程序解释)。

[routerLink]指令可有效地更新应用程序内部的路由,同时更新浏览器的导航历史记录,而无需实际获取新页面。hashbang在我们讨论策略时,较早的应用程序实际上会使用push state策略...(如果您有兴趣了解更多信息,请在此处进行讨论

无论哪种方式,就像@Ritwick提到的那样。在这一点上index.html,如果用户从应用程序外部导航到路由,则可以将所有服务器请求重定向到该方式。就像一些示例代码片段一样,如果您使用的话,也可以进行路由的重定向NGINX

index index.html;

location / {
  try_files $uri $uri/ /index.html;
}

或者,如果您使用的是Firebase之类的产品,则可以firebase.json像这样更新您的产品...

{
  "hosting": {
    "public": "dist", // if your app is in a subfolder of the dist, include that
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章