引用地址:https://blog.csdn.net/qq_35415307/article/details/80707463
本地ng项目没问题,到了线上跳转刷新都会报404错误,相信这个问题每个做ng项目的人都遇到过,下面给出解决方案。
一、原因
本地环境没问题,因为本地是路由跳转,前端执行的跳转。部署到线上,它其实走的是后台的路径,假如你部署在tomcat的容器里面,它执行的是JavaWeb的路由。所以找不到。
二、解决
这里就要使用hash模式,hash模式是基于锚点(#)做的内部链接机制机制,就可以解决问题。配置代码也很简单。
1.导入策略
在app.module.ts里导入 HashLocationStrategy 及 HashLocationStrategy。
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
2.配置provide
providers: [
{ provide: LocationStrategy, useClass: HashLocationStrategy }
]
重启项目,你会发现,所有的url会加了‘/#’,就大功告成了。