最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實現(xiàn)靜態(tài)資源的OSS部署的完整指南

 更新時間:2025年11月19日 09:54:34   作者:浮游本尊  
在大型前端項目的生產(chǎn)環(huán)境部署中,靜態(tài)資源(JS、CSS、字體文件等)通常占據(jù)較大的體積,將這些資源部署到對象存儲服務(OSS)并通過 CDN 加速,可以帶來很多優(yōu)勢,所以本文給大家介紹了Vue實現(xiàn)靜態(tài)資源的OSS部署的完整指南,需要的朋友可以參考下

背景與需求

業(yè)務場景

在大型前端項目的生產(chǎn)環(huán)境部署中,靜態(tài)資源(JS、CSS、字體文件等)通常占據(jù)較大的體積。將這些資源部署到對象存儲服務(OSS)并通過 CDN 加速,可以帶來以下優(yōu)勢:

  1. 減輕服務器壓力:靜態(tài)資源不再占用應用服務器的帶寬和存儲
  2. 提升訪問速度:CDN 邊緣節(jié)點就近分發(fā),降低延遲
  3. 降低服務器成本:減少服務器帶寬和存儲需求
  4. 提高可用性:CDN 的高可用性保障

需求分析

我們的項目需要實現(xiàn)以下功能:

  • 環(huán)境區(qū)分:測試環(huán)境使用本地資源,生產(chǎn)環(huán)境使用 OSS CDN
  • 選擇性上傳:只上傳 static/css/static/fonts/、static/js/ 目錄
  • 路徑處理favicon.icostyles/ 目錄不上傳 OSS,使用相對路徑
  • 自動化部署:通過腳本自動化完成上傳流程
  • 版本管理:通過文件 hash 實現(xiàn)緩存控制

技術(shù)方案設(shè)計

架構(gòu)設(shè)計

┌─────────────────┐
│  本地開發(fā)環(huán)境    │  → 相對路徑 (/)
└─────────────────┘

┌─────────────────┐
│  測試環(huán)境構(gòu)建    │  → 相對路徑 (/) → 直接部署
└─────────────────┘

┌─────────────────┐
│  生產(chǎn)環(huán)境構(gòu)建    │  → CDN 路徑 (https://cdn.example.com/)
└─────────────────┘
         │
         ├─→ static/css/   → 上傳 OSS
         ├─→ static/fonts/ → 上傳 OSS
         ├─→ static/js/    → 上傳 OSS
         ├─→ favicon.ico   → 不上傳(相對路徑)
         └─→ styles/       → 不上傳(相對路徑)

技術(shù)選型

  • 構(gòu)建工具:Vue CLI(基于 Webpack)
  • OSS 工具:ossutil(阿里云官方命令行工具)
  • 腳本語言:Bash Shell
  • 路徑處理:Webpack 插件 + 自定義 HTML 修改插件

Vue CLI 配置詳解

1. publicPath 動態(tài)配置

publicPath 決定了構(gòu)建后資源的引用路徑。我們需要根據(jù)環(huán)境變量動態(tài)設(shè)置:

module.exports = {
  publicPath: process.env.CDN_URL || 
    (process.env.NODE_ENV === 'development' ? '/' : // 本地開發(fā)環(huán)境
     process.env.VUE_APP_PATH_TYPE === 'gray' ? '/' : // 測試環(huán)境使用相對路徑
     'https://js-cdn.m.cc/'), // 生產(chǎn)環(huán)境使用 CDN
  outputDir: 'dist',
  assetsDir: 'static',
  filenameHashing: true,
}

關(guān)鍵點說明

  • assetsDir: 'static':所有資源輸出到 static/ 目錄
  • filenameHashing: true:啟用文件名 hash,實現(xiàn)緩存控制
  • 環(huán)境判斷邏輯:
    • 開發(fā)環(huán)境:始終使用相對路徑
    • 測試環(huán)境(VUE_APP_PATH_TYPE === 'gray'):使用相對路徑
    • 生產(chǎn)環(huán)境:使用 CDN 路徑

2. 輸出文件名配置

為了確保文件路徑的一致性,需要顯式設(shè)置輸出文件名:

configureWebpack: config => {
  // 統(tǒng)一使用 static/js/ 路徑,與 assetsDir 保持一致
  config.output.filename = 'static/js/[name].[hash:8].js'
  config.output.chunkFilename = 'static/js/[name].[hash:8].js'
}

為什么需要顯式設(shè)置?

雖然 assetsDir: 'static' 會自動處理路徑,但顯式設(shè)置可以:

  • 確保所有環(huán)境路徑一致
  • 避免不同 Webpack 版本的差異
  • 便于后續(xù)維護和理解

3. HTML 路徑修改插件

生產(chǎn)環(huán)境需要特殊處理:靜態(tài)資源使用 CDN,但 favicon.icostyles/ 使用相對路徑。

實現(xiàn)原理

在 Webpack 的 emit 階段(生成文件后,寫入磁盤前),通過自定義插件修改 HTML 內(nèi)容:

chainWebpack: config => {
  // 只在生產(chǎn)環(huán)境(非測試環(huán)境)運行
  if (process.env.NODE_ENV === 'production' && process.env.VUE_APP_PATH_TYPE !== 'gray') {
    class ModifyHtmlPlugin {
      apply(compiler) {
        compiler.hooks.emit.tapAsync('ModifyHtmlPlugin', (compilation, callback) => {
          Object.keys(compilation.assets).forEach(filename => {
            if (filename.endsWith('.html')) {
              let html = compilation.assets[filename].source()
              
              // 1. 先處理 BASE_URL 變量(如果還沒被 Vue CLI 替換)
              html = html.replace(/href="<%= BASE_URL %>favicon\.ico" rel="external nofollow" /g, 'href="/favicon.ico" rel="external nofollow"  rel="external nofollow" ')
              html = html.replace(/href="<%= BASE_URL %>styles\/([^" rel="external nofollow" ]+)"/g, 'href="/styles/$1" rel="external nofollow"  rel="external nofollow" ')
              
              // 2. 替換其他 BASE_URL 變量為 CDN 路徑
              const baseUrl = process.env.CDN_URL || 'https://js-cdn.m.cc/'
              html = html.replace(/<%= BASE_URL %>/g, baseUrl)
              
              // 3. 最后處理已經(jīng)被替換的 CDN 路徑(將 favicon 和 styles 改回相對路徑)
              html = html.replace(/href="https:\/\/js-cdn\.modb\.cc\/favicon\.ico" rel="external nofollow" /g, 'href="/favicon.ico" rel="external nofollow"  rel="external nofollow" ')
              html = html.replace(/href="https:\/\/js-cdn\.modb\.cc\/styles\/([^" rel="external nofollow" ]+)"/g, 'href="/styles/$1" rel="external nofollow"  rel="external nofollow" ')
              
              compilation.assets[filename] = {
                source: () => html,
                size: () => html.length
              }
            }
          })
          callback()
        })
      }
    }
    config.plugin('modify-html').use(ModifyHtmlPlugin)
  }
}

處理順序的重要性

  1. 先處理 BASE_URL 變量(模板階段)
  2. 替換為 CDN 路徑
  3. 最后將特定文件改回相對路徑

這樣可以確保所有路徑都被正確處理。

4. 代碼分割優(yōu)化

為了提升加載性能,我們配置了代碼分割:

config.optimization.splitChunks = {
  chunks: 'all',
  minSize: 20000,
  maxAsyncRequests: 20,
  maxInitialRequests: 15,
  cacheGroups: {
    // Vue 核心庫單獨拆分
    vueCore: {
      name: 'chunk-vue-core',
      test: /[\\/]node_modules[\\/](vue|vue-router|vuex|vue-i18n)[\\/]/,
      priority: 40,
      chunks: 'initial',
      enforce: true
    },
    // 大型 UI 庫單獨拆分
    elementPlus: {
      name: 'chunk-element-plus',
      test: /[\\/]node_modules[\\/]element-plus[\\/]/,
      priority: 35,
      chunks: 'initial',
      enforce: true
    },
    // 其他配置...
  }
}

優(yōu)勢

  • 大型庫單獨拆分,便于緩存
  • 按需加載的庫設(shè)置為 async,減少初始加載體積
  • 公共代碼提取,避免重復打包

OSS 工具安裝與配置

1. 確定服務器架構(gòu)

首先需要確定服務器的 CPU 架構(gòu),以選擇正確的 ossutil 版本:

uname -m
# 輸出示例:
# x86_64  → 使用 ossutil64
# aarch64 → 使用 ossutilarm64

2. 下載 ossutil

根據(jù)架構(gòu)下載對應版本(以阿里云 OSS 為例):

# 創(chuàng)建目錄
mkdir -p /root/oss
cd /root/oss

# 下載對應版本(示例:ARM64 架構(gòu))
wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutilarm64

# 或者使用 curl
curl -o ossutilarm64 https://gosspublic.alicdn.com/ossutil/1.7.13/ossutilarm64

# 添加執(zhí)行權(quán)限
chmod +x ossutilarm64

# 驗證安裝
/root/oss/ossutilarm64 --version

3. 配置 OSS 憑證

ossutil 支持兩種配置方式:

方式一:命令行配置(臨時)

/root/oss/ossutilarm64 config -e <endpoint> \
  -i <accessKeyId> \
  -k <accessKeySecret>

方式二:配置文件(推薦)

創(chuàng)建配置文件 ~/.ossutilconfig

cat > /root/.ossutilconfig << 'EOF'
[Credentials]
language=EN
endpoint=oss-cn-hangzhou.aliyuncs.com
accessKeyID=YOUR_ACCESS_KEY_ID
accessKeySecret=YOUR_ACCESS_KEY_SECRET
EOF

# 設(shè)置文件權(quán)限(安全考慮)
chmod 600 /root/.ossutilconfig

配置說明

  • language=EN:使用英文輸出,避免編碼問題
  • endpoint:OSS 區(qū)域節(jié)點地址
  • accessKeyIDaccessKeySecret:OSS 訪問憑證

4. 測試連接

# 測試連接
/root/oss/ossutilarm64 ls oss://your-bucket-name/

# 如果成功,會顯示 OSS 上的文件列表

上傳腳本編寫

腳本結(jié)構(gòu)設(shè)計

上傳腳本需要包含以下功能:

  1. 環(huán)境檢查:驗證構(gòu)建輸出是否存在
  2. 連接測試:確保 OSS 連接正常
  3. 清理舊文件:刪除 OSS 上的舊版本文件
  4. 上傳新文件:上傳指定的目錄
  5. 驗證上傳:確認上傳成功

完整腳本示例

#!/bin/bash
set -e  # 遇到錯誤立即退出

echo "Starting OSS upload for production environment..."

# ========== 1. OSS 配置 ==========
# 如果使用配置文件,可以跳過此步驟
# 如果需要動態(tài)配置,使用以下命令:
# /root/oss/ossutilarm64 config -e <endpoint> \
#   -i <accessKeyId> \
#   -k <accessKeySecret>

# ========== 2. 測試 OSS 連接 ==========
echo "Testing OSS connection..."
if /root/oss/ossutilarm64 ls oss://your-bucket-name/ 2>/dev/null > /dev/null; then
    echo "OSS connection test passed"
else
    echo "Warning: OSS connection test failed, but continuing..."
fi

# ========== 3. 設(shè)置構(gòu)建路徑 ==========
DIST_PATH="/u01/dist"

# ========== 4. 檢查構(gòu)建輸出 ==========
if [ ! -d "$DIST_PATH" ]; then
    echo "Error: $DIST_PATH not found"
    exit 1
fi

echo "Build path: $DIST_PATH"

# 檢查 static 目錄
if [ ! -d "$DIST_PATH/static" ]; then
    echo "Error: $DIST_PATH/static not found"
    exit 1
fi

# 檢查關(guān)鍵文件
if [ ! -f "$DIST_PATH/index.html" ]; then
    echo "Error: $DIST_PATH/index.html not found"
    exit 1
fi

if [ ! -f "$DIST_PATH/favicon.ico" ]; then
    echo "Warning: $DIST_PATH/favicon.ico not found"
fi

if [ ! -d "$DIST_PATH/styles" ]; then
    echo "Warning: $DIST_PATH/styles directory not found"
fi

# ========== 5. 清理 OSS 上的舊文件 ==========
echo ""
echo "Cleaning old files from OSS..."

# 刪除 OSS 上的 css 目錄(使用 -f 參數(shù)避免交互式提示)
echo "   Deleting old CSS files..."
/root/oss/ossutilarm64 rm -r oss://your-bucket-name/static/css/ -f 2>/dev/null || echo "   (CSS directory may not exist, skipping)"

# 刪除 OSS 上的 fonts 目錄
echo "   Deleting old fonts files..."
/root/oss/ossutilarm64 rm -r oss://your-bucket-name/static/fonts/ -f 2>/dev/null || echo "   (Fonts directory may not exist, skipping)"

# 刪除 OSS 上的 js 目錄
echo "   Deleting old JS files..."
/root/oss/ossutilarm64 rm -r oss://your-bucket-name/static/js/ -f 2>/dev/null || echo "   (JS directory may not exist, skipping)"

echo "Old files cleaned (if any existed)"
echo ""

# ========== 6. 上傳新文件 ==========

# 上傳 static/css/ 目錄
if [ -d "$DIST_PATH/static/css" ]; then
    echo "Uploading static/css/ directory..."
    /root/oss/ossutilarm64 cp -r $DIST_PATH/static/css/ oss://your-bucket-name/static/css/ -f
    if [ $? -eq 0 ]; then
        echo "CSS directory uploaded successfully"
    else
        echo "Failed to upload CSS directory"
        exit 1
    fi
else
    echo "Warning: $DIST_PATH/static/css not found, skipping..."
fi

# 上傳 static/fonts/ 目錄
if [ -d "$DIST_PATH/static/fonts" ]; then
    echo "Uploading static/fonts/ directory..."
    /root/oss/ossutilarm64 cp -r $DIST_PATH/static/fonts/ oss://your-bucket-name/static/fonts/ -f
    if [ $? -eq 0 ]; then
        echo "Fonts directory uploaded successfully"
    else
        echo "Failed to upload fonts directory"
        exit 1
    fi
else
    echo "Warning: $DIST_PATH/static/fonts not found, skipping..."
fi

# 上傳 static/js/ 目錄
if [ -d "$DIST_PATH/static/js" ]; then
    echo "Uploading static/js/ directory..."
    /root/oss/ossutilarm64 cp -r $DIST_PATH/static/js/ oss://your-bucket-name/static/js/ -f
    if [ $? -eq 0 ]; then
        echo "JS directory uploaded successfully"
    else
        echo "Failed to upload JS directory"
        exit 1
    fi
else
    echo "Error: $DIST_PATH/static/js not found (required)"
    exit 1
fi

# ========== 7. 驗證上傳 ==========
echo ""
echo "Verifying upload..."

# 統(tǒng)計上傳的文件數(shù)量
JS_COUNT=$(/root/oss/ossutilarm64 ls oss://your-bucket-name/static/js/ 2>/dev/null | wc -l)
CSS_COUNT=$(/root/oss/ossutilarm64 ls oss://your-bucket-name/static/css/ 2>/dev/null | wc -l)
FONTS_COUNT=$(/root/oss/ossutilarm64 ls oss://your-bucket-name/static/fonts/ 2>/dev/null | wc -l)

echo ""
echo "Upload completed!"
echo "Upload statistics:"
echo "   JS files: $JS_COUNT"
echo "   CSS files: $CSS_COUNT"
echo "   Fonts files: $FONTS_COUNT"

# 檢查關(guān)鍵文件是否存在
echo ""
echo "Checking key files..."

JS_CHECK=$(/root/oss/ossutilarm64 ls oss://your-bucket-name/static/js/app.*.js 2>/dev/null | head -1 | wc -l)
CSS_CHECK=$(/root/oss/ossutilarm64 ls oss://your-bucket-name/static/css/app.*.css 2>/dev/null | head -1 | wc -l)

if [ "$JS_CHECK" -gt 0 ] && [ "$CSS_CHECK" -gt 0 ]; then
    echo "Key files app.js and app.css found in OSS"
    echo "Upload verification passed!"
else
    echo "Warning: Some key files may be missing"
fi

echo ""
echo "OSS upload process completed!"

腳本關(guān)鍵點說明

1.set -e的作用

set -e

遇到任何錯誤立即退出,避免繼續(xù)執(zhí)行可能導致的問題。

2. 使用-f參數(shù)

ossutilarm64 rm -r oss://bucket/path/ -f
ossutilarm64 cp -r local/path/ oss://bucket/path/ -f

-f 參數(shù)的作用:

  • rm -r -f:強制刪除,不詢問確認
  • cp -r -f:強制覆蓋,不詢問確認

為什么重要:在自動化腳本中,交互式提示會導致腳本掛起。

3. 錯誤處理

command 2>/dev/null || echo "fallback message"
  • 2>/dev/null:隱藏錯誤輸出
  • ||:如果命令失敗,執(zhí)行后續(xù)命令
  • 適用于首次運行(目錄可能不存在)的場景

4. 變量命名注意事項

避免使用可能被系統(tǒng)識別的變量名:

# ? 不推薦(可能被某些系統(tǒng)識別為系統(tǒng)變量)
BUILD_PATH="/u01/dist"

# ? 推薦
DIST_PATH="/u01/dist"

5. 文件計數(shù)驗證

JS_COUNT=$(ossutilarm64 ls oss://bucket/static/js/ 2>/dev/null | wc -l)

使用 wc -l 統(tǒng)計文件數(shù)量,用于驗證上傳是否成功。

部署流程

測試環(huán)境部署

測試環(huán)境使用相對路徑,不需要上傳 OSS:

# 1. 構(gòu)建項目
npm run gray

# 2. 打包
tar -czf dist.gz dist/

# 3. 上傳到服務器并解壓
scp dist.gz user@server:/path/to/deploy/
ssh user@server "cd /path/to/deploy && tar -xzf dist.gz"

生產(chǎn)環(huán)境部署

生產(chǎn)環(huán)境需要上傳資源到 OSS:

# 1. 構(gòu)建項目
npm run build

# 2. 打包
tar -czf dist.gz dist/

# 3. 上傳到服務器
scp dist.gz user@server:/u01/
scp upload-to-oss-production.sh user@server:/u01/

# 4. 在服務器上執(zhí)行部署腳本
ssh user@server << 'EOF'
cd /u01
rm -rf dist && tar -zxvf ./dist.gz
chmod +x upload-to-oss-production.sh
./upload-to-oss-production.sh
EOF

完整部署腳本示例

可以將解壓和上傳合并到一個腳本中:

#!/bin/bash
set -e

# 解壓構(gòu)建文件
cd /u01
rm -rf dist && tar -zxvf ./dist.gz

# 執(zhí)行 OSS 上傳腳本
./upload-to-oss-production.sh

# 部署到 Web 服務器(Nginx 示例)
# cp -r dist/* /usr/share/nginx/html/
# systemctl reload nginx

注意事項與最佳實踐

1. 安全性

憑證管理

  • 不要在腳本中硬編碼憑證
  • 使用環(huán)境變量或配置文件
  • 設(shè)置配置文件權(quán)限為 600
chmod 600 ~/.ossutilconfig

最小權(quán)限原則

為 OSS 訪問密鑰設(shè)置最小必要權(quán)限:

  • 只允許上傳到指定目錄
  • 禁止刪除其他目錄的文件

2. 性能優(yōu)化

并行上傳

對于大量文件,可以考慮并行上傳:

# 使用后臺任務并行上傳
/root/oss/ossutilarm64 cp -r $DIST_PATH/static/css/ oss://bucket/static/css/ -f &
/root/oss/ossutilarm64 cp -r $DIST_PATH/static/fonts/ oss://bucket/static/fonts/ -f &
/root/oss/ossutilarm64 cp -r $DIST_PATH/static/js/ oss://bucket/static/js/ -f &

# 等待所有任務完成
wait

增量上傳

如果文件很多,可以使用 --update 參數(shù)進行增量上傳:

ossutilarm64 cp -r local/path/ oss://bucket/path/ --update

但需要注意:如果文件名包含 hash,每次構(gòu)建都是新文件,增量上傳意義不大。

3. 緩存策略

HTTP 緩存頭

在 OSS 控制臺或通過 API 設(shè)置緩存頭:

Cache-Control: public, max-age=31536000

對于帶 hash 的文件名,可以設(shè)置長期緩存。

CDN 緩存

如果使用 CDN,需要配置:

  • 緩存規(guī)則:根據(jù)文件類型和路徑
  • 緩存刷新:更新后及時刷新 CDN 緩存

4. 監(jiān)控與日志

上傳日志

記錄上傳過程的關(guān)鍵信息:

LOG_FILE="/var/log/oss-upload.log"
echo "$(date): Starting OSS upload" >> $LOG_FILE
# ... 上傳過程 ...
echo "$(date): OSS upload completed" >> $LOG_FILE

監(jiān)控告警

  • 監(jiān)控上傳失敗率
  • 監(jiān)控 OSS 存儲使用量
  • 監(jiān)控 CDN 流量

5. 回滾策略

保留歷史版本

在刪除舊文件前,可以先備份:

# 備份當前版本
BACKUP_DIR="backup/$(date +%Y%m%d_%H%M%S)"
/root/oss/ossutilarm64 cp -r oss://bucket/static/ oss://bucket/$BACKUP_DIR/ -f

快速回滾

如果需要回滾,可以從備份恢復:

/root/oss/ossutilarm64 cp -r oss://bucket/$BACKUP_DIR/static/ oss://bucket/static/ -f

問題排查

1. 路徑問題

問題:HTML 中的路徑不正確

癥狀:瀏覽器控制臺顯示 404 錯誤

排查步驟

  1. 檢查 dist/index.html 中的路徑
  2. 確認 publicPath 配置是否正確
  3. 驗證 ModifyHtmlPlugin 是否正常運行

解決方案

# 檢查構(gòu)建后的 HTML
cat dist/index.html | grep -E '(href|src)='

# 檢查環(huán)境變量
echo $NODE_ENV
echo $VUE_APP_PATH_TYPE

2. OSS 連接問題

問題:ossutil 連接失敗

癥狀ossutil: No such file or directory 或連接超時

排查步驟

  1. 檢查 ossutil 是否安裝
  2. 檢查網(wǎng)絡(luò)連接
  3. 驗證憑證是否正確

解決方案

# 檢查 ossutil 是否存在
ls -la /root/oss/ossutilarm64

# 測試網(wǎng)絡(luò)連接
ping oss-cn-hangzhou.aliyuncs.com

# 測試 OSS 連接
/root/oss/ossutilarm64 ls oss://bucket-name/

3. 上傳失敗

問題:上傳過程中斷或失敗

癥狀:腳本執(zhí)行失敗,部分文件未上傳

排查步驟

  1. 檢查磁盤空間
  2. 檢查網(wǎng)絡(luò)穩(wěn)定性
  3. 查看 OSS 控制臺的錯誤日志

解決方案

# 檢查磁盤空間
df -h

# 檢查網(wǎng)絡(luò)
curl -I https://oss-cn-hangzhou.aliyuncs.com

# 重試上傳
./upload-to-oss-production.sh

4. 文件權(quán)限問題

問題:ossutil 無執(zhí)行權(quán)限

癥狀Permission denied

解決方案

chmod +x /root/oss/ossutilarm64

5. 腳本語法問題

問題:腳本執(zhí)行報語法錯誤

癥狀syntax error: unexpected EOF

常見原因

  1. 括號不匹配
  2. 引號未閉合
  3. 變量名包含特殊字符

解決方案

# 檢查腳本語法
bash -n upload-to-oss-production.sh

# 使用 shellcheck 檢查(如果已安裝)
shellcheck upload-to-oss-production.sh

6. 環(huán)境變量問題

問題:構(gòu)建時路徑不正確

癥狀:測試環(huán)境使用了 CDN 路徑,或生產(chǎn)環(huán)境使用了相對路徑

排查步驟

# 檢查 package.json 中的腳本
cat package.json | grep -A 5 '"scripts"'

# 確認環(huán)境變量設(shè)置
# 測試環(huán)境應該設(shè)置 VUE_APP_PATH_TYPE=gray
# 生產(chǎn)環(huán)境不應該設(shè)置此變量

總結(jié)

本文詳細介紹了 Vue.js 項目將靜態(tài)資源部署到 OSS 的完整實現(xiàn)過程,包括:

  1. 配置層面:通過 Vue CLI 配置實現(xiàn)不同環(huán)境的路徑處理
  2. 工具層面:OSS 命令行工具的安裝和配置
  3. 腳本層面:自動化上傳腳本的編寫
  4. 部署層面:完整的部署流程

關(guān)鍵要點

  • 環(huán)境區(qū)分:測試環(huán)境使用相對路徑,生產(chǎn)環(huán)境使用 CDN
  • 選擇性上傳:只上傳必要的靜態(tài)資源目錄
  • 路徑處理:通過自定義插件處理特殊文件的路徑
  • 自動化:通過腳本實現(xiàn)一鍵部署
  • 安全性:妥善管理 OSS 憑證
  • 可維護性:清晰的代碼結(jié)構(gòu)和完善的錯誤處理

擴展建議

  1. CI/CD 集成:將上傳腳本集成到 CI/CD 流程中
  2. 監(jiān)控告警:添加監(jiān)控和告警機制
  3. 多環(huán)境支持:支持多個生產(chǎn)環(huán)境的配置
  4. 版本管理:實現(xiàn)更完善的版本管理和回滾機制

希望本文能幫助您成功實現(xiàn)靜態(tài)資源的 OSS 部署!

以上就是Vue實現(xiàn)靜態(tài)資源的OSS部署的完整指南的詳細內(nèi)容,更多關(guān)于Vue靜態(tài)資源OSS部署的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue3中的useAttrs和props的區(qū)別解析

    vue3中的useAttrs和props的區(qū)別解析

    在vue3中,?提供了一個?useAttrs?的方法它接收到的參數(shù)一?prop中可以接收到的數(shù)據(jù)是基本一樣的如果我們想自已寫一個組件,?把?elementPlus?中的期中一個組件封裝一下,這篇文章主要介紹了vue3中的useAttrs和props的區(qū)別,需要的朋友可以參考下
    2023-09-09
  • vue實現(xiàn)組件值的累加

    vue實現(xiàn)組件值的累加

    這篇文章主要為大家詳細介紹了vue實現(xiàn)組件值的累加,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Vue實現(xiàn)base64編碼圖片間的切換功能

    Vue實現(xiàn)base64編碼圖片間的切換功能

    這篇文章主要介紹了Vue實現(xiàn)base64編碼圖片間的切換功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • 解決Element-ui radio單選框label布爾/數(shù)值的一個坑

    解決Element-ui radio單選框label布爾/數(shù)值的一個坑

    這篇文章主要介紹了解決Element-ui radio單選框label布爾/數(shù)值的一個坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue中提示$index is not defined錯誤的解決方式

    vue中提示$index is not defined錯誤的解決方式

    這篇文章主要介紹了vue中提示$index is not defined錯誤的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue的安裝及element組件的安裝方法

    vue的安裝及element組件的安裝方法

    下面小編就為大家分享一篇vue的安裝及element組件的安裝,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue?axios接口請求封裝方式

    vue?axios接口請求封裝方式

    這篇文章主要介紹了vue?axios接口請求封裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 關(guān)于vue-router路徑計算問題

    關(guān)于vue-router路徑計算問題

    這篇文章主要介紹了關(guān)于vue-router路徑計算問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Vue3使用時應避免的10個錯誤總結(jié)

    Vue3使用時應避免的10個錯誤總結(jié)

    Vue?3已經(jīng)穩(wěn)定了相當長一段時間了。許多代碼庫都在生產(chǎn)環(huán)境中使用它,其他人最終都將不得不遷移到Vue?3。我現(xiàn)在有機會使用它并記錄了我的錯誤,下面這些錯誤你可能想要避免
    2023-03-03
  • 詳解vue+nodejs獲取多個表數(shù)據(jù)的方法

    詳解vue+nodejs獲取多個表數(shù)據(jù)的方法

    這篇文章主要為大家介紹了vue+nodejs獲取多個表數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論

德州市| 内江市| 思茅市| 黑水县| 锡林郭勒盟| 仙居县| 德阳市| 会宁县| 安庆市| 沈丘县| 上饶市| 桂阳县| 乐安县| 赤壁市| 垦利县| 博兴县| 平顺县| 拜城县| 会理县| 临朐县| 磴口县| 牟定县| 兴和县| 淳化县| 孟州市| 额尔古纳市| 衡水市| 遵义市| 牙克石市| 江华| 克拉玛依市| 新闻| 巫溪县| 合肥市| 吉木萨尔县| 乌兰县| 南雄市| 延吉市| SHOW| 德令哈市| 旬邑县|