Vue路由设置mode模式为History 中页面404的原因及解决

我们使用vue+vue-router创建单页面应用的时候,一般会在router中设置mode:history,让我们的url更美观,也利于seo,如果单单只是设置的了这个,当页面刷新或者是手动添加路径的时候就会报404错误

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

请看官网给我们的方案


image.png

当我们设置了mode为history时,当前端发送路径给服务端时,服务端根本就不认识省去#的url,所以返回给我们404.解决方法,请看下图,在webpack.config.client.js 的devServer中设置

historyApiFallback:{
      index:'/index.html'//index.html为当前目录创建的template.html
}
image.png

注意:如果webpack.config.base.js中的output设置了基路径,那么historyApiFallback也要添加

webpack.config.base.js
 output: {

    filename: 'bundle.[hash:8].js',
    path: path.join(__dirname, '../dist'),
    publicPath: "/public/"
  },



webpack.config.client.js

 historyApiFallback:{
      index:'/public/index.html'
  }
image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很多父母都关注孩子的体育锻炼,但是又常常会迷茫,不知道怎样的锻炼才能真正有利于孩子的成长,接下来,小简给大家推荐几...
    南曳阅读 484评论 0 1
  • 在一本书上读到“有两种不联系,一种是忘记,一种是放在回忆里。”这句话时,黎子沐只觉得眼泪直要往下落。过了一...
    兮兮亚阅读 452评论 0 0
  • 八号晚上九点我到瑞士了。从杭州凌晨四点起床到到达目的地,颠簸了24个多小时,期间在飞机上13个多小时,我真的有点疲...
    紫苏zxy阅读 800评论 1 3
  • 帷幕落下的那一刻,我的心才踏实地放了下来。不得不说,这是一部看似无声却胜有声的惊悚片。 我是一个害怕看恐怖片的人,...
    初玉er阅读 1,267评论 1 5