angular项目线上地址跳转或刷新报错的解决

本地ng项目没问题,到了线上跳转刷新都会报404错误,相信这个问题每个做ng项目的人都遇到过,下面给出解决方案。

一、原因

本地环境没问题,因为本地是路由跳转,前端执行的跳转。部署到线上,它其实走的是后台的路径,假如你部署在tomcat的容器里面,它执行的是JavaWeb的路由。所以找不到。

二、解决

这里就要使用hash模式,hash模式是基于锚点(#)做的内部链接机制机制,就可以解决问题。配置代码也很简单。

  1. 导入策略
    在app.module.ts里导入 HashLocationStrategy 及 HashLocationStrategy。
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
  1. 配置provide
providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy }
  ]

重启项目,你会发现,所有的url会加了‘/#’,就大功告成了。

你可能感兴趣的:(javascript)