nginx部署vue项目(除首页外全404)

坑点:vue项目的路由采用了history模式,部署到nginx服务器后,只能访问首页,其他页面都是404

解决办法:在nginx的nginx.conf 配置文件中加上try_files配置

location / {
  root   html; #默认html,可自定义为打包后的项目index.html文件存放的位置
  index  index.html index.htm;
  try_files $uri $uri/ /index.html; # vue-router官网给的解决方案
}

vue-router官方链接

hash模式下,页面整体可看作单页面,#分隔符后面的路由被分隔,nginx静态服务器默认查找index.html文件并返回;但是使用history模式后,没有#分隔符,比如http://history.test/home与http://history.test#home则完全不同,try_files原理是通过请求的uri去root对应的文件夹里面查找,查找顺序则依次为try_files内部具体内容,具体查找逻辑可参考nginx官网,目前水平看不懂具体的查找逻辑,有待日后~~~

你可能感兴趣的:(nginx部署vue项目(除首页外全404))