Vue+Nginx实现同域名下部署多个vue项目

【场景】www.web.com 默认访问A项目; www.web.com/webB 访问B项目;www.web.com/webC 访问C项目;

一、在vue.config.js中配置publicPath与outputDir

module.exports = {
   
   
	//process.env.NODE_ENV === "production" ? "./" : "/",这种写法有时候会不生效,具体没找到问题原因
	//可以用笨方法,每次打包时手动修改为publicPath:"./",
	publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
	outputDir:"webA",//设置项目打包生成的文件的存储目录,对应项目名称,默认为dist
    devServer: {
   
   
        open:true
Nginx中,域名部署多个Vue项目的常见场景是通过路径别名(path alias)配合history模式来实现。当你需要在域名(`example.com`)和一端口(`80`或`443`)上运行两个或更多的Vue应用,可以这样做: 1. **配置Nginx**: 在Nginx服务器的配置文件中,为每个Vue应用创建一个新的location块,并指定对应的目录。例如,如果你有两个应用分别对应`/app1`和`/app2`,你可以这样设置: ```nginx location /app1 { alias /path/to/app1/dist; try_files $uri $uri/ @vue_app1; } location @vue_app1 { root /path/to/app1/dist; if (!-e $request_filename) { rewrite ^(.*)$ /index.html last; break; } } location /app2 { alias /path/to/app2/dist; try_files $uri $uri/ @vue_app2; } location @vue_app2 { root /path/to/app2/dist; if (!-e $request_filename) { rewrite ^(.*)$ /index.html last; break; } } ``` 这里`try_files`用于处理非静态请求,`rewrite`规则则是为了让history模式工作,将所有请求重定向到`index.html`。 2. **Vue项目配置**: 在Vue应用中,确保你已经设置了`base`字段指向实际的应用根路径,如`/app1`或`/app2`。这通常可以在`public/index.html`或`src/router/index.js`中完成。 3. **HTTP vs HTTPS**: 如果你时支持HTTP和HTTPS,记得在Nginx配置中为HTTPS添加相应的SSL证书和监听端口,比如: ```nginx server { listen 80; server_name example.com; # HTTP配置... # 更改为443并添加SSL配置 for HTTPS: listen 443 ssl; ssl_certificate /path/to/your.crt; ssl_certificate_key /path/to/your.key; # ...其他HTTPS配置 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值