Vue项目部署上线(页面刷新404)

记录一下自己部署上服务器的坑!!!

用过Vue开发项目的应该都知道,vue-router的作用是配置前端路由表,在本地开发调试时一切使用正常,但是部署上线到服务器,一旦刷新页面浏览器就会报404(Not Found)。后来发现bug的根源,每当刷新页面POST都会变成GET请求,并没有进入axios封装的拦截中,费脑。

*注:首先,说明下vue-router的默认hash模式——使用URL的hash来模拟一个完整的URL,当URL改变时,页面不会重新加载。但是这种hash值不美观。所以改用history模式来实现URL跳转而无须重新加载页面。history 模式利用 history.pushState()来完成 URL 跳转而无须重新加载页面。

  • 处理方法一:

    history模式改成hash模式即可!

  • 处理方式二:

要用这种模式,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://域名/user/index,就会返回 404,出现以上事故。

如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你下面项目依赖的页面。

nginx

location / {
  try_files $uri $uri/ /index.html;
}

以上两个方法我尝试过的!

附上解决此问题的博客:https://www.cnblogs.com/cx709452428/p/10338925.html

你可能感兴趣的:(Vue项目部署上线(页面刷新404))