<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      記錄---五分鐘帶你學(xué)會(huì),同一個(gè)域名下,部署多個(gè)項(xiàng)目

      ????? 寫在開頭

      點(diǎn)贊 + 收藏 === 學(xué)會(huì)??????

      需求描述

      • 在某些情況下,同一個(gè)域名下,要布置多個(gè)子項(xiàng)目
      • 比如公司沒錢,資源緊張,域名少,域名臨時(shí)沒有申請(qǐng)下來(lái),不夠用等
      • 或者主項(xiàng)目下,要有其他子項(xiàng)目的時(shí)候
      • 這個(gè)時(shí)候,我們需要把子項(xiàng)目給做相應(yīng)的修改
      • 同時(shí),nginx做對(duì)應(yīng)的修改,才能實(shí)現(xiàn)文章標(biāo)題的需求功能
      • 注意:主項(xiàng)目一般不用做修改,主要是其他的子項(xiàng)目做修改
      • 這里主項(xiàng)目是vue2+webpack
      • 子項(xiàng)目是vue3+vite
      • 如下步驟,是子項(xiàng)目部署流程環(huán)節(jié)

      部署示例效果

      大家可以點(diǎn)擊看一下這個(gè)實(shí)例

      1 子項(xiàng)目的vite.config.js文件的base添加區(qū)分其他項(xiàng)目的前綴,比如/extraPro/

      如下代碼,若是生產(chǎn)環(huán)境,就給打包的結(jié)果添加/extraPro/前綴

      // vite.config.js
      
      import { defineConfig } from 'vite';
      import { resolve } from 'path';
      import vue from '@vitejs/plugin-vue';
      
      // https://vitejs.dev/config/
      export default defineConfig(({ command, mode }) => {
          const isProduction = mode === 'production';
          const config = {
              // 生產(chǎn)環(huán)境加上前綴處理
              base: isProduction ? '/extraPro/' : '/',
              resolve: { ... },
              plugins: [vue()],
              server: { ...}
          };
          return config;
      });
      • 這樣的話,打包的dist文件中的index.html文件
      • 就會(huì)在靜態(tài)資源鏈接的地方均帶有/extraPro/前綴

      如下圖

      • 但是這樣,還是不夠的,因?yàn)樽禹?xiàng)目也有路由
      • 路由之前,要跳轉(zhuǎn)的
      • 所以,子項(xiàng)目在路由跳轉(zhuǎn)的地方也要添加/extraPro/前綴
      • 否則,子項(xiàng)目路由跳轉(zhuǎn),就跳到主項(xiàng)目
      • 但是主項(xiàng)目沒有/extraPro/之類的路由
      • 所以就是404的頁(yè)面
      • 就是確保子項(xiàng)目也能跳到子項(xiàng)目的路由前綴

      2 子項(xiàng)目createRouter路由跳轉(zhuǎn)的地方,加/extraPro/

      加上這個(gè)/extraPro/前綴后,子項(xiàng)目就可以在子項(xiàng)目的路由之間,相互正常跳轉(zhuǎn)了

      // router.js
      
      import { createRouter, createWebHistory } from 'vue-router'
      export const routes =  [ ... ]
      const router = createRouter({
          history: createWebHistory('/extraPro'),
          routes
      })
      • 到這一步,子項(xiàng)目已經(jīng)基本ok了
      • 是基本OK
      • 可能還有一些細(xì)節(jié)需要微調(diào)
      • 接下來(lái),就是服務(wù)器的nginx配置修改
      • 然后就搞定了

      3 在原來(lái)的nginx配置下,再新增一個(gè)location定位子項(xiàng)目前綴

      • 這是原來(lái)的主項(xiàng)目的nginx配置
      • 我們默認(rèn)是80端口吧
      • 主項(xiàng)目的nginx不用修改,繼續(xù)用
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
          client_max_body_size  10m;
      
          server {
              listen       80;
              server_name  localhost;
              add_header 'Referrer-Policy' 'origin'; 
      
              location / {
                  try_files $uri $uri/ /index.html;
                  root C:/nginx-1.18.0/html/main/dist/;
                  index  index.html index.htm;
              }
          }
      }
      • 然后,在上面的主項(xiàng)目的nginx的server里面,新增一個(gè)location
      • 專門去定位子項(xiàng)目的,如下nginx配置:
      server {
          listen       80;
          server_name  localhost;
          add_header 'Referrer-Policy' 'origin'; 
      
          # 主項(xiàng)目
          location / {
              try_files $uri $uri/ /index.html;
              root C:/nginx-1.18.0/html/main/dist/;
              index  index.html index.htm;
          }
      
          # 同一個(gè)域名部署多個(gè)額外的項(xiàng)目,比如我要再加一個(gè)extraPro前綴的項(xiàng)目(子項(xiàng)目)
          location /extraPro/ {
              alias C:/nginx-1.18.0/html/extraPro/dist/;
              try_files $uri $uri/ /extraPro/index.html;
          }
      }

      上述子項(xiàng)目配置語(yǔ)法解釋:

      location /extraPro/ { ... }

      • 意思是為 /extraPro/ 路徑配置處理規(guī)則。比如我的額外的子項(xiàng)目,都能夠通過(guò)類似的配置來(lái)處理該子項(xiàng)目的請(qǐng)求。

      • alias C:/nginx-1.18.0/html/extraPro/dist/;

        • 該語(yǔ)法將請(qǐng)求的 /extraPro/ 路徑映射到文件系統(tǒng)中的 C:/nginx-1.18.0/html/extraPro/dist/ 目錄。與 root 不同,alias 會(huì)將整個(gè)路徑替換掉,而不是附加在指定的根目錄后。
        • 例如,訪問(wèn) localhost/extraPro/index.html 時(shí),Nginx 會(huì)從 C:/nginx-1.18.0/html/extraPro/dist/index.html 讀取文件返回給瀏覽器解析。
        • 這樣的話,就是能讀取到子項(xiàng)目的html文件了
      • try_files $uri $uri/ /extraPro/index.html;

        • 該指令與主項(xiàng)目的 try_files 指令類似,首先會(huì)嘗試查找請(qǐng)求的文件,如果沒有找到則返回 /extraPro/index.html。這是為了確保 SPA 應(yīng)用能夠正確加載。

      綜上所述:

      子項(xiàng)目、即額外的項(xiàng)目 /extraPro/ 會(huì)將請(qǐng)求路由到 C:/nginx-1.18.0/html/extraPro/dist/ 目錄下,同樣,任何無(wú)法匹配的路徑也會(huì)返回 /extraPro/index.html,以支持該子項(xiàng)目的前端路由。

      這樣的話,就可以做到,在同一個(gè) Nginx 服務(wù)器上托管多個(gè)獨(dú)立的前端項(xiàng)目,且每個(gè)項(xiàng)目都可能有自己的路由處理。

      4. 細(xì)節(jié)微調(diào),檢查子項(xiàng)目中,是否有未能夠添加到/extraPro/前綴的

      • 比如,帶有iframe的public文件夾下的資源引用
      • 也要手動(dòng)修改一下,添加/extraPro/前綴
      • 如下:

      原來(lái)的:

      <template>
          <h2>資源</h2>
          <iframe src="/myhtml/html2canvas.html" frameborder="0" width="100%" height="80%"></iframe>
       </template>
      要修改成:
      <template>
          <h2>資源</h2>
          <iframe src="/extraPro/myhtml/html2canvas.html" frameborder="0" width="100%" height="80%"></iframe>
       </template>

      至此,恭喜你學(xué)會(huì)了:同一個(gè)域名下,部署多個(gè)項(xiàng)目...

      A good memory is better than a bad pen. Record it down...

      本文轉(zhuǎn)載于:https://juejin.cn/post/7499462637022543912

      如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

      posted @ 2025-05-08 18:11  林恒  閱讀(354)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 免费视频国产在线观看| 亚洲丰满熟女一区二区蜜桃| 人妻饥渴偷公乱中文字幕| 国产啪视频免费观看视频| 国产av一区二区亚洲精品| 久久三级国内外久久三级| 色婷婷久久综合中文久久一本| 国产精品免费看久久久无码 | 在线日韩日本国产亚洲| 子洲县| 国产乱码精品一区二区三上| 中文在线天堂中文在线天堂| 久久国产一区二区三区| 武夷山市| 视频一区二区三区四区五区| 少妇被粗大的猛烈xx动态图| 久久青草国产精品一区| 亚洲欧洲日产国无高清码图片| 国产午夜精品无码一区二区| 久久人人97超碰人人澡爱香蕉| 马尔康县| 国产午夜精品视频在线播放| 人成午夜免费大片| 国产成人无码专区| 亚洲一区二区三区丝袜| 日韩深夜福利视频在线观看| 三年片在线观看免费观看高清动漫| 欧美乱码伦视频免费| 国内偷自第一区二区三区| 四虎永久精品免费视频| 国产成人无码精品久久久露脸| 蜜桃av亚洲第一区二区| 亚洲精品一区二区三区在| 综合亚洲网| 欧美激情 亚洲 在线| 色老头在线一区二区三区| 亚洲欧美日韩在线不卡| 成人午夜激情在线观看| 欧美裸体xxxx极品| 色狠狠色噜噜AV一区| 色婷婷av久久久久久久|