首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >前端静态资源缓存控制:ETag、Last-Modified、Cache-Control 的最小组合

前端静态资源缓存控制:ETag、Last-Modified、Cache-Control 的最小组合

作者头像
安全风信子
发布2025-11-18 18:53:04
发布2025-11-18 18:53:04
760
举报
文章被收录于专栏:AI SPPECHAI SPPECH

一句话承诺:用一张表和两段配置,快速摆平前端静态资源的缓存控制,减少不必要的请求。

对照表:三者关系

字段

作用

典型用法

ETag

内容指纹

资源修改时变更,弱/强ETag可选

Last-Modified

最后更新时间

与If-Modified-Since配合

Cache-Control

缓存策略

max-age、no-cache、immutable 等

Nginx 最小配置示例

代码语言:javascript
复制
server {
  listen 80;
  server_name _;
  location /static/ {
    root /var/www/html;
    etag on;
    add_header Cache-Control "public, max-age=31536000, immutable";
  }
}

Node.js(Express)示例

代码语言:javascript
复制
const express = require('express');
const app = express();
app.use('/static', express.static('public', {
  etag: true,
  lastModified: true,
  maxAge: '365d',
  immutable: true
}));
app.listen(3000);

少量解释

  • immutable 适用于文件名带哈希的静态资源(如 app.abc123.js),保证长期缓存不强校验。
  • ETag 适合动态内容或非哈希文件,变更时即可触发新请求。
  • Last-Modified 可与 ETag 并存,提升命中率。

常见坑与替代法

  • 坑:每次部署静态文件名不带哈希,导致缓存命中错误。替代:构建阶段加入指纹命名。
  • 坑:滥用 no-cache 导致频繁校验。替代:合理使用 max-age 与 immutable。
  • 坑:ETag计算昂贵。替代:对大文件使用Last-Modified为主,ETag为辅。

下一篇预告

CSS Grid 速查:三行代码做出两列布局与常见坑位图(mermaid思维导图)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对照表:三者关系
  • Nginx 最小配置示例
  • Node.js(Express)示例
  • 少量解释
  • 常见坑与替代法
  • 下一篇预告
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档