最近在作项目,须要把项目部署在域名下的二级目录,而且是在用vue-router的history 模式。html
咱们都知道vue-router 的两种前端基本访问模式 hash 和history 。hash 模式后面带#,打包的时候只须要把绝对路径(/)换成相对对路径(./),就能够部署在任何地方,不须要服务器配合,可是很差看,因此咱们通常选择history 模式,可是history 模式须要配合服务器的部署。前端
本文主要是在vue-cli3版本下,对部署在域名的二级目录下作四处的配置:vue
1 export default new VueRouter({ 2 mode:"history", 3 base:"/web",
注意: baseUrl 从 Vue CLI 3.3 起已弃用,请使用publicPath。nginx
module.exports = { publicPath:"/web" }
<meta base ="/web/">
server { listen 80; server_name localhost; root /home/wwwroot/; location /web { try_files $uri $uri/ /web/index.html; } }
到此,配置和部署已经完成了,将打包好的前端静态资源放在域名指定的根目录下的二级(多级目录配置同上)录便可,web
注意,以上配置是针对在history模式,部署在域名下的二级目录以上的 配置,hash 模式 和 history 模式部署在域名根目录不须要那么多配置vue-router
本人测试过部署过,只要按照以上配置四个地方,彻底没有问题,可是有不对之处,还请你们指出,谢谢....vue-cli