Vue-cli2打包前的設(shè)置+Nginx配置Socket.io的https通信

方法1:vue 路由沒(méi)有使用history模式且vue項(xiàng)目打包上傳直接放在Nginx的html文件夾中,通過(guò)以下配置訪問(wèn)html文件夾下的index.html文件即為項(xiàng)目首頁(yè)

  • build文件下的untils.js文件中找到vue-style-loader增加publicPath: '../../'
  • config文件下的index.js文件找到build屬性,修改assetsPublicPath: '/'assetsPublicPath: './'
  • 設(shè)置開(kāi)發(fā)接口代理,這里的代理正是為 Nginx 配置做準(zhǔn)備的
  • 生產(chǎn)環(huán)境配置文件中配置訪問(wèn)的服務(wù)器域名,注意:因?yàn)榍岸隧?xiàng)目運(yùn)行訪問(wèn)socket時(shí)會(huì)默認(rèn)帶上/socket.io/這個(gè)路由,所以初始化Socket客戶端鏈接時(shí)的url為服務(wù)器域名即可!
  • 使用npm run build命令打包項(xiàng)目后將(static文件夾+index.html文件)上傳到/usr/local/nginx/html/目錄下,再配置nginx.conf配置文件,最后重啟Nginx服務(wù)即可!

方法二:vue路由使用history模式,則需要按照以下步驟來(lái)操作

  • 現(xiàn)有一個(gè)需求,如何用Nginx配置訪問(wèn)不同的前端項(xiàng)目?答:①配置多個(gè)二級(jí)域名并且設(shè)置https訪問(wèn)對(duì)應(yīng)項(xiàng)目根路徑的index.html文件即可;②基于Nginx的location進(jìn)行配置(以下步驟使用這種方法)。
  • 在方法一的基礎(chǔ)上,修改config文件夾下的index.js文件(注意是build內(nèi)):
  • 修改src/router/index.js文件,添加內(nèi)容:base: '/frontend/',
  • 然后執(zhí)行命令:npm run build,確保產(chǎn)生的index.html文件中靜態(tài)資源路徑都是在/frontend/文件夾下的,注意添加內(nèi)容:<meta base=/frontend/>。

  • 將打包后的文件上傳到Nginx的html目錄下,注意:frontend文件夾下含static文件夾和index.html文件。

  • 修改nginx.conf文件:
  • 以上 nginx 配置文件仍有缺陷,若手動(dòng)刷新會(huì)導(dǎo)致頁(yè)面404,故需修改一下請(qǐng)求根路徑下的/代碼,讓其重定向到特定路由:
location / {
    root   html;
    index  index.html;
    try_files $uri $uri/  /frontend/index.html;  #@qwe
  }

  #location @qwe {
  #  if ($request_uri ~* "^/frontend/.*") {
   #     rewrite ^(.*)$ https://xxxxxxx/frontend last;
    #}
    #if ($request_uri ~* "^/backend/.*") {
      #  rewrite ^(.*)$ https://xxxxxxx/backend last;
    #}
  #}
  #xxxxxxx:表示域名
  #^(.*)$表示匹配的路由
  #https://xxxxxxx/frontend:表示重定向的路由
  #last:表示本條規(guī)則匹配完成后,繼續(xù)向下匹配新的location URI規(guī)則,同個(gè)代碼塊直接break
  #~*:用于表示URI包含正則表達(dá)式,且不區(qū)分大小寫(xiě)
  #$request_uri:表示除去$host剩下的部分
  • 訪問(wèn)該項(xiàng)目:個(gè)人域名/frontend。
  • 新增Nginx訪問(wèn)不同前端項(xiàng)目都可以采用方法二進(jìn)行處理!

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容