nginx下 部署多个vue项目

一:hash模式

  1. 准备两个项目 一个test1 一个test2
  2. vue模式  (hash--带#)
  3. router.js 正常逻辑 无改动
    const createRouter = () =>
       new Router({
        scrollBehavior: () => ({ y: 0 }),
        routes: constantRoutes
     });

    vue.config.js: 设置publicPath 

    //module.exports下 
        
        publicPath: "/test1/" ,
     //test指代nginx的放置vue文件的文件夹名称 如果按环境配置的话 可在配置文件中添加
      //  VUE_APP_publicPath = '/test1/' 这样上述path修改为
        publicPath: process.env.VUE_APP_publicPath || "/",

    3. nginx.conf配置    nginx-1.16.1/conf/nginx.conf 文件

    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;  #监听80端口
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html;
            }
    		location /test1/ {
    			alias html/test1/;   # 项目存放路径
    		}
    		location /test2/ {
    			alias html/test2/;   # 项目存放路径
    		}
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    	
    
    
      
    
    }

  4. nginx-t 检测语法是否正确 ,如果已启动 请重启 nginx -s reload , 未启动 start nginx

    访问地址 http://localhost/test1/   ---项目1  http://localhost/test2/      ----项目二           

二。history模式 单个项目(多个项目配置别名不同)

1.准备项目 test

2.router.js 修改base  vue3.0的话 移除base使用history属性 相关函数进行配置模式和基础路径

  2.0  

const createRouter = () =>
   new Router({
    base:"/abc/",
    scrollBehavior: () => ({ y: 0 }),
    routes: constantRoutes
 });

 3.0

import { createRouter, createWebHistory} from "vue-router";
const router = createRouter({
  history: createWebHistory('/abc/'),
  routes:constantRoutes
});

vue.config.js: 设置publicPath 

//module.exports下 
    
    publicPath: "/abc/" ,
 //test指代nginx的放置vue文件的文件夹名称 如果按环境配置的话 可在配置文件中添加
  //  VUE_APP_publicPath = '/abc/' 这样上述path修改为
    publicPath: process.env.VUE_APP_publicPath || "/",

3. nginx.conf配置

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;  #监听80端口
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

		location /abc/ {
			alias html/test/;   # 项目存放路径
            index  index.html;
			try_files $uri $uri/ /test/index.html;  #刷新404 全部导航到首页
		}
		
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

	


  

}

访问  http://localhost/abc/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值