全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 7 分钟 ✍️ juanwangdev

CDN 部署与资源分发

生产环境使用 CDN 分发静态资源,提升全球用户访问速度。

CDN 部署架构

JavaScript
用户请求 → CDN 边缘节点 → 缓存命中? → 返回资源
                          ↓ 未命中
                        源站获取 → 缓存 → 返回

配置 CDN 基础路径

HTML
export default defineConfig({
  base: 'https://cdn.example.com/assets/'
})

构建后资源引用:

JavaScript
<script src="https://cdn.example.com/assets/index-abc123.js"></script>
<link href="https://cdn.example.com/assets/index-def456.css">

资源哈希命名

Bash
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        // JS 哈希命名
        entryFileNames: 'js/[name]-[hash].js',
        chunkFileNames: 'js/[name]-[hash].js',
        // CSS 哈希命名
        assetFileNames: (assetInfo) => {
          if (assetInfo.name.endsWith('.css')) {
            return 'css/[name]-[hash][extname]'
          }
          return 'assets/[name]-[hash][extname]'
        }
      }
    }
  }
})

注意:哈希命名确保缓存正确,内容变化文件名变化。

上传 CDN

JavaScript
# 构建产物
npm run build

# 上传 dist/assets 到 CDN
aws s3 sync dist/assets s3://cdn-bucket/assets/

# 或使用其他 CDN 服务

CDN 缓存策略

资源类型缓存时间
HTML短缓存或不缓存
JS/CSS长期缓存
图片/字体长期缓存

HTML 处理

YAML
// HTML 不放 CDN,放源站
// base 只影响静态资源
export default defineConfig({
  base: 'https://cdn.example.com/assets/',
  build: {
    // HTML 输出到源站目录
    outDir: 'dist-server'
  }
})

CDN 配置示例

JavaScript
# CDN 配置
cache:
  js: max-age=31536000  # 1年
  css: max-age=31536000
  images: max-age=31536000
  html: max-age=0       # 不缓存

多 CDN 配置

text
// 使用多个 CDN 域名
const cdnDomains = [
  'https://cdn1.example.com',
  'https://cdn2.example.com'
]

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        // 可按资源类型分 CDN
        assetFileNames: (assetInfo) => {
          const cdn = assetInfo.name.endsWith('.css')
            ? cdnDomains[0]
            : cdnDomains[1]
          return `${cdn}/[name]-[hash][extname]`
        }
      }
    }
  }
})

要点总结

  • base 配置 CDN 基础路径
  • 哈希命名确保缓存正确
  • HTML 放源站,静态资源放 CDN
  • JS/CSS 长期缓存,HTML 短缓存

📝 发现内容有误?点击此处直接编辑

← 上一篇 CI/CD 构建流水线优化
下一篇 → 安全策略配置
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库