vue项目部署(vue-cli3.x,nginx,同域名多工程)

提要:vue-router 有两种模式,
1、默认是hash模式,通过URL的hash来模拟URL。
2、另一种history模式,它是利用history.pushStateAPI来模拟URL。
只不过这次我选择history最主要的原因是:hash模式分享链接后有挺多坑。

1、再BB下

首先我们先提一下官方给予我们在History模式下服务器部署的帮助

location / {
  try_files $uri $uri/ /index.html;
}

简单采用他人的解释:

uri就是访问的url,不包含域名和querystring,例如/test/hello 当访问uri时,如果存在,则访问$uri/, 不存在就访问/index.html 这样配置好,访问http://example.com/时就可以访问到网站了,进入多级目录后刷新页面也不会存在问题。

2、修改VUE配置文件(正式开始)

因为我们同一个域名下有多个工程项目,所以我们是采用非根目录下访问的情况,所以我们需要修改VUE配置文件。

vue-cli3.X :
1、在vue.config.js的文件中加入(此处为了打包后的JS,CSS等文件的路径引向)

module.exports = {
  baseUrl:'/tool/'  //根据www.xxx.com/后面的路径写入(比如www.xxx.com/tool)
}

官方给出的解释是:


image.png

2、改变vue项目中的路由配置,

const router = new Router({
 mode: "history",
 base:'/tool/',
 //....其他无影响省略

3、OK,VUE需要解决的事情搞定(改变webpack output.publicPath,改变路由base)

3、nginx配置

此处不教程nginx安装之类,只记录和此次项目有关的简单部署配置,如果需要从0开始可以查看我另外一篇记录
咳咳:性子急的可以直接看最下面配置

1、老样子一步一步来,我们需要根据官方提供的简单修正下代码

location / {
  try_files $uri $uri/ /index.html;
}

改为:(注意下,我现在都是以/tool来记录)

  location /tool { 
        try_files $uri $uri/ /tool/index.html;
   }

2、我们先看一下同域下多工程项目的结构:

server {
    listen   80;        #端口  
    server_name  xxxx.com;
    root /var/html;
    location /{
      ... #xxxx.com
    }
    location /tool { 
      ... #对应的访问地址 xxxx.com/tool
    }
    location /community { 
      ... #  xxxx.com/community
    }
}

OK,这样的结构穿插我们的东东

server {
    listen   80;        #端口  
    server_name  xxxx.com;
    root /var/html;
    location /{
    }
    location /tool { 
      index index.html;
      try_files $uri $uri/ /tool/index.html;
    }
    location /community { 
      index index.html;
      try_files $uri $uri/ /community/index.html;
    }
}

题外话:
网上还有alias的路径指向,root和alias的区别在于(个人理解,出错希望点出):
location /file/{
alias /var/html/file; #这个查找文件的路径直接是/var/html/file
}
location /file/{
root /var/html/file; #这个查找文件的路径应该是/var/html/file/file
#所以应该为 root /var/html;因此之后的配置我将其放置在全局中
}

3、这一步其实看情况选择,一般是不会有啥问题,但有些会遇见JS,CSS等文件引入出错,解决办法是

    location  ~ .*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
    {
      root /var/html;
      proxy_temp_path /var/html;
    }

4、好的,最终的配置文件是:

server {
    listen   80;        #端口  
    server_name  xxxx.com;
    root /var/html;
    location /{
    }
    location /tool { 
      index index.html;
      try_files $uri $uri/ /tool/index.html;
    }
    location /community {  
      index index.html;
      try_files $uri $uri/ /community/index.html;
    }
    location  ~ .*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
    {
      root /var/html;
      proxy_temp_path /var/html;
    }
}

好的,将其保存上传,并将打包好的文件直接丢入对应的tool或者community,然后访问xxxx.com/tool或者/community

4、最后就是nginx修改配置一定要重启!!

nginx -t
nginx -s reload
//如果这个代码不行可以自行谷歌百度下命令行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 目录 一、项目结构的核心思想 二、项目目录结构 三、资源路径编译规则 四、index.html 五、build目录...
    科研者阅读 11,354评论 0 40
  • 1. Linux命令 1.1 常用命令 显示文件或目录ls(选项)(参数)-l 表示long,长格式列出-a 表示...
    nimw阅读 6,168评论 1 12
  • I/O模型: 阻塞型、非阻塞型、复用型、信号驱动型、异步 同步/异步:关注消息通知机制 消息通知:同步:等待对方返...
    Net夜风阅读 1,997评论 0 1
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 2,895评论 1 4
  • 亲爱的读者们,现在是2050年的春天的一天,地球上已经人满为患,据说已经有几百亿人了,地球已经向人类发出最后通牒。...
    Mr_稻香老农阅读 460评论 68 57