Nginx 配置多个Vue项目

背景:同一个域名下,配置多个Vue 项目,vuemode使用history,通过location来区分。

vue项目使用 vue-cli 来生成。

一、Vue 项目配置

有两个项目:
第一个:打包到 `badudu`目录中;
第二个:打包到 `management` 目录中;

注意:第二个项目需要需要做以下修改,然后再进行打包。第一个项目啥都不用动,就用默认的配置就行。

  • 1、vue.config.js 中,添加:publicPath: '/management' 配置项
  • 2、router.js 中,添加: base: '/management
// vue.config.js
module.exports = {
    lintOnSave: false,
    productionSourceMap: false,
    publicPath: '/management',
    configureWebpack: config => {
        console.log(process);
        if (process.env.NODE_ENV === 'production') {
            return {
            };
            // 为生产环境修改配置...
        } else {
            // 为开发环境修改配置...
        }
    }
};

// src/router.js
import Vue from 'vue';
import Router from 'vue-router';
import routes from './routes.js';

Vue.use(Router);
const router = new Router({
    base: '/management',
    mode: 'history',
    routes
});

export default router;

对第二个项目打包,打完了以后,看一下 dist 目录中的 index.html文件,会发现引入文件时,给加上了 /management/ 这个前缀,这个到时候要与Nginxlocation配置相对应。

image.png

二、 Nginx 配置

server {
    listen       80;
    server_name   www.badudu.cn;
   # 项目二的配置
    location /management/ {
        alias /home/mall/management/;  # 这里注意要用  `alias` 
        index  index.html index.htm;
        try_files $uri $uri/ /management/index.html;
    }
   # 项目一的配置
     location / {
        root /home/mall/badudu/;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

三、 history 和 hash 模式下,Nginx的配置

1、history 模式

server {
    listen       80;
    server_name   www.badudu.cn;
   # 项目一的配置
     location / {
        root /home/mall/badudu/;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

2、hash 模式

server {
    listen       80;
    server_name   www.badudu.cn;
   # 项目一的配置
     location / {
        root /home/mall/badudu/;
        index  index.html index.htm;
    }
}

你可能感兴趣的:(Nginx 配置多个Vue项目)