惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
I
InfoQ
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
Docker
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
博客园 - Franky
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
WordPress大学
WordPress大学
MyScale Blog
MyScale Blog
月光博客
月光博客
罗磊的独立博客

宇外御风

99元/年阿里云服务器搭建大华摄像头智能云回放(Frigate+ZLMediaKit极简方案) 用CloudflareWorker+D1数据库搭建MoonTVPlus 蜜蜂记账一个开源免费安全的记账软件 更换vercel部署的Waline存储服务到TiDB 解决使能IPv6防火墙控制转发报文无法关闭 推荐三个应用tx box、lx音乐、阅读 24岁不上不下 试验检测师学习笔记 hexo博客添加live动图 每日60秒新闻简报 让AI理解标签语法美化文章 宝塔自动部署拉取GitHub仓库的hexo博客 添加安知鱼主题页面卡片并美化 魅族20Pro系统更新支持朋友圈动图 搜索引擎如何发现你的博客 打造无缝影音体验:NAS自动化媒体库 + IPv6远程访问 + VidHub完美字幕支持 年轻人的第一台代步车福特嘉年华 蟹bro记又名01测量大帝 驾校科目一 铁路路基监测报告
解决Hexo博客发布文章后更新不及时
宇外御风 · 2026-03-22 · via 宇外御风
技术教程

Hexo 博客缓存问题与解决方案

遇到的问题

我的 Hexo 博客部署在 Cloudflare 上,使用 GitHub 作为代码仓库。最近发布文章时发现,由于浏览器和 CDN 的强缓存,更新文章后,刷新页面却看不到新内容。

  • 电脑端尚可通过 Ctrl + F5 进行强制刷新来解决。
  • 手机端就非常尴尬,往往需要完全清除浏览器记录或开启无痕模式,经常要折腾半天才能刷出新内容。

我们可以为部署平台(如 Vercel, GitHub Pages, Netlify, Cloudflare Pages 等)创建一个 _headers 文件。这个文件就像一份给浏览器的“缓存说明书”,可以精确地告诉浏览器:哪些内容需要缓存,以及缓存多久。

下面是优化后的缓存配置策略,已整合为一份完整的配置:

# 所有 HTML 页面:不缓存,每次请求最新版本
/*.html
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

# 首页、分页、标签页、分类页等路径:同样不缓存
/
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

/page/*
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

/tag/*
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

/category/*
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

# 静态资源:JS、CSS、图片、图标等,长期缓存(一年)
/*.css
Cache-Control: public, max-age=31536000, immutable

/*.js
Cache-Control: public, max-age=31536000, immutable

/*.png
/*.jpg
/*.jpeg
/*.gif
/*.ico
/*.svg
Cache-Control: public, max-age=31536000, immutable

配置说明与好处

  • /*.html:匹配所有文章页面、独立页面和首页HTML文件。
  • no-cache, no-store:指令浏览器不要缓存或本地存储这些内容。
  • must-revalidate:要求浏览器每次都必须向服务器验证内容的有效性。
  • Expires: 0:设置资源立即过期。

应用此配置后,效果立竿见影:

  1. 内容实时更新:发布文章后能立刻显示,再也看不到陈旧的缓存内容,无需手动清除浏览器缓存。
  2. 访问速度依旧快:此方案设计合理,在确保HTML(文章、首页)每次获取最新的同时,继续对JS、CSS、图片等静态资源进行长达一年的缓存,充分利用缓存优势。
  3. 无额外负担:仅禁止缓存体积很小的HTML文件,不会增加服务器流量压力。
  4. SEO友好:搜索引擎每次抓取都能获得最新内容,避免了因缓存导致网站内容更新不被收录的问题。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 宇外御风