在我的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] 删除。
我来说两句