今天踩到了angular的一个坑,即本地npm start运行项目时没有出现问题。部署到服务器后,页面可以正常跳转,但是只能通过根路径访问,不能通过子路由的url访问,而且在当前url的基础上如果刷新页面,也会报错。
报错如下:
解决方法:
添加锚,即使用hash。
配置代码如下:
app.module.ts
import {HashLocationStrategy , LocationStrategy} from '@angular/common';
@NgModule({
...
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}]
});
配置完成再重新部署后,会自动在根节点后面加一个#锚点。
参考文章:
[1] angular项目线上地址跳转或刷新报错的解决