同一域名下部署多个vue项目

同一域名下部署多个vue项目

 

问题说明

现在有这么一个需求,有两个 vue 项目, vue1和 vue2 ,如何让

http://www.baidu.com/vue1/   作为 vue1 项目的根路径

http://www.baidu.com/vue2/   作为 vue2 项目的根路径 

也就是说两个项目互相不影响?

 

创建项目

现在我们创建一个名为 vue1 的项目

以3.0+ 的 vuecli 创建的项目为例,我们需要在根目录创建这个 vue.config.js 文件

// vue.config.js
 
module.exports = {
    // 假如想在同一个域名下配置多个项目,当前项目前缀是 /vue1
    
    // 基本路径,如果是生产(也就是run build) 那么生成的 index.html 文件,引入的js,css路径前缀会是 /vue1/ 
    publicPath: process.env.NODE_ENV === 'production' ? '/vue1' : '/',
    // 输出文件目录
    outputDir: 'vue1',
 
    devServer: {
        // 是否自动弹出浏览器页面
        open: true,
        // 设置为0.0.0.0则所有的地址均能访问 
        host: '0.0.0.0',
        // 端口
        port: '8888',
        https: false,
        hotOnly: false,
        // 代理配置
        proxy: {
            '/proxyApi_vant': {
                // 后端接口地址
                target: 'http://localhost:8090',
                // 代理 websockets
                ws: true,
                // 允许跨域 
                changeOrigin: true,
                // 重写路径,把 proxyApi 去掉
                pathRewrite: {
                    '^/proxyApi_vant': ''
                }
            }
        },
    }
}

配置 publicPath

里面的重点配置是 publicPath 这个配置,这个三目表达式的意思是, 如果是生产环境,(也就是打包的时候)以 vue1 为根路径, 也就是说通过这个配置 我们打包生成的 index.html 文件, 打开会发现里面引入js css 的时候路径是以 /vue1/ 为根路径


   outputDir: 'vue1', 这个配置的作用呢,就是打包后生成的文件夹叫啥名字,原来默认都是叫dist,现在为了方便,直接生成和 vue1, 然后直接把 vue1 文件夹上传到nginx 就可以了,为了方便配置一下更好

 

配置  vueRoueter 的 base 路径


找到自己项目中创建vueRouter 对象的位置,在这里使用 histroy 路由模式(也就是url不带 # ) , 然后重点是这个 base 属性,一定要配置成  vue1 和 publicPath 中配置的一样。

 

配置Nginx

把打包后的文件夹 (vue1) 上传到 服务器,然后配置 nginx 配置文件
  
   

    location /vue1/ {
        # 注意这里是 alias,然后指向的位置使我们上传的文件夹的具体位置
        # 注意末尾要带上 ‘/’ 哦   
        alias /usr/share/nginx/html/vue1/;
        index  index.html ;
        # 注意这里的url ,不加这个项目刷新会出问题哦,具体原因不展开讲了
        try_files $uri /vue1/index.html ;
    }


至此,配置就完成了总结其实就是配置 publicPath  和 vueRouter 的 base 属性 ,然后配置 nginx 的配置文件,如果还有 vue2.vue3项目,按照这种配置,同一个域名下可以随便部署多个 vue 项目。

 

原文链接:https://blog.csdn.net/u012549055/article/details/105896729

要在Nginx部署多个Vue项目,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Nginx。如果尚未安装,请根据你的操作系统的要求进行安装。 2. 在Nginx的配置文件夹中创建一个新的配置文件,比如 `/etc/nginx/conf.d`。在该文件夹中创建一个名为 `myproject.conf` 的文件,用于配置你的项目。 3. 打开 `myproject.conf` 文件,并输入以下内容: ``` server { listen 80; server_name your_domain.com; // 替换为你的域名或IP地址 location /project1 { alias /path/to/project1/dist; // 替换为第一个Vue项目的dist目录路径 try_files $uri $uri/ /project1/index.html; } location /project2 { alias /path/to/project2/dist; // 替换为第二个Vue项目的dist目录路径 try_files $uri $uri/ /project2/index.html; } // 可以继续添加其他项目的配置 error_page 404 /index.html; } ``` 上述配置中,我们使用了 `alias` 指令将每个项目的 `dist` 目录映射到对应的路径。`try_files` 指令用于处理路由请求,确保能够正确访问到每个Vue项目的路由。 4. 保存并关闭文件。 5. 检查配置文件是否存在语法错误:执行 `nginx -t` 命令。 6. 如果没有错误,重新加载Nginx配置文件:执行 `sudo service nginx reload`(根据你的操作系统和Nginx安装方式可能会有所不同)。 7. 确保你的域名或IP地址正确解析到服务器,并尝试访问 `http://your_domain.com/project1` 和 `http://your_domain.com/project2`,应该能够分别访问到两个Vue项目。 按照上述步骤,你可以配置Nginx部署多个Vue项目。你可以根据需要添加更多的项目配置。在配置完成后,确保每个项目的 `dist` 目录已经构建并位于正确的路径上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值