最近搞一个demo服务,需要把项目部署在域名二级目录下,并且是用vue-routerhistory的模式

我们都知道vue-router 的两种前端基本访问模式 hashhistoryhash 模式后面带#,打包的时候只需要把绝对路径(/)换成相对路径./),就可以部署在任何地方,不需要服务器配合,但是不好看,所以我们一般选择history 模式,但是history 模式需要配合服务器的部署。

本文主要是在vue-cli4版本下,对部署在域名的二级目录下做四处的配置:

1、vue-router 路由的文件的配置,根据自己部署的二级目录填写

1
2
3
export default new VueRouter({
mode: "history",
base: "/web",

2、在vue.config.js配置文件(如果没有新建一个,项目根目录下)

注意: baseUrlVue CLI 3.3已弃用,请使用publicPath

1
2
3
module.exports = {
publicPath: "/web"
}

3、在入口文件中index.html 的head 标签内加入

1
<meta base ="/web/">

4、最后就是部署配置,以nginx为例

1
2
3
4
5
6
7
8
server {
listen 80;
server_name localhost;
root /home/wwwroot/;
location /web {
try_files $uri $uri/ /web/index.html;
}
}