宝塔面板如何优化静态资源传输_设置浏览器缓存过期时间

雨婷吖_6779

雨婷吖_6779

2026-03-29

713人浏览

原创

静态资源缓存应设为浏览器缓存而非Nginx缓存,因.js/.css/.png等文件发布后极少变动,浏览器缓存30天可省90%请求;宝塔启用“静态文件缓存”即自动注入expires指令,生成标准Cache-Control和Expires头。

宝塔面板如何优化静态资源传输_设置浏览器缓存过期时间

静态资源缓存为什么必须设成「浏览器缓存」而不是 Nginx 缓存?

因为 .js、.css、.png 这类文件一旦发布就极少变动,让浏览器自己存 7 天或 30 天,能直接省掉 90% 以上的请求,服务器连连接都不用建。而用 fastcgi_cache 或 proxy_cache 去缓这类资源,反而多绕一层、占内存、还容易因 Cache-Control 冲突失效。

宝塔里最省事的方式就是打开「启用静态文件缓存」——它背后自动注入的是 expires 指令,生成标准的 Cache-Control: max-age=2592000 和 Expires 响应头,兼容所有现代浏览器。

  • 进站点设置 → 找到「伪静态」标签页下方,勾选「启用静态文件缓存」
  • 下拉选「30 天」(推荐),别选「7 天」——很多前端构建工具(如 Webpack)输出的文件名自带 hash,改了内容就会换 URL,所以缓存久点完全没问题
  • 不需要重启 Nginx,保存即生效;刷新任意一个 .js 文件,响应头里能看到 Cache-Control 和 Expires

为什么改了缓存时间,Chrome DevTools 里还是显示「from disk cache」或「from memory cache」?

这是正常现象,不是没生效。「from disk cache」说明浏览器真按你设的时间存了,而且这次是复用本地副本;「from memory cache」是更激进的短期复用(进程级),不影响过期逻辑。真正要验证是否生效,得看响应头,而不是控制台的“Size”列。

  • 打开 Chrome DevTools → Network 标签 → 刷新页面 → 点一个 .css 文件 → 查看 Response Headers 里的 Cache-Control 和 Expires
  • 如果看到 max-age=2592000(30 天)且 Expires 是未来时间,说明设置成功
  • 如果仍是 no-cache 或 max-age=0,大概率是 PHP 脚本自己输出了冲突头(比如 WordPress 插件或主题强行加了 header('Cache-Control: no-cache')),这种会覆盖 Nginx 的 expires

想让某些静态资源不缓存(比如 favicon.ico 或调试用的 main.js),怎么排除?

宝塔面板的「启用静态文件缓存」是全量开关,没法按后缀或路径精细控制。真有例外需求,就得手动写 Nginx 配置,用 location 块覆盖默认行为。

  • 进站点设置 → 「配置文件」→ 在 server { } 块里,location ~ .*\.(js|css|png|jpg|gif|jpeg|bmp|webp|ico|svg|woff|woff2|ttf|eot)$ 这类规则上方,插入特例:
location = /favicon.ico {
    expires -1;
    add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
}
  • 对开发阶段的 /static/main.js,也可以加类似规则:location ^~ /static/main.js { expires -1; }
  • 注意顺序:Nginx 匹配 location = 最精确,优先于正则;所以把例外规则写在通用静态规则之前才有效
  • CDN 场景下,浏览器缓存和 CDN 缓存谁起作用?

    两者都起作用,但层级不同:浏览器缓存是最后一道,CDN 缓存是中间代理层。如果你开了宝塔的「静态文件缓存」,CDN 回源拿到的响应本身就带 Cache-Control,它会照着这个时间缓存;用户再请求时,CDN 直接返回,根本不会压到你的服务器。

    • CDN 不会无视你设的 expires,但部分 CDN(如腾讯云、又拍云)允许在控制台强制覆盖缓存时间,这时以 CDN 设置为准
    • 关键点:确保你的静态资源走的是独立子域名(如 static.example.com),且该站点在宝塔中设为「纯静态」——这样 CDN 回源时不会触发 PHP,也不会被 Cookie 或登录态污染缓存
    • 如果发现 CDN 总是回源,先检查宝塔静态站点的响应头有没有 Set-Cookie 或 Vary: Cookie,有就得在 Nginx 配置里加 proxy_hide_header Set-Cookie;(反向代理场景)或确认没开任何 PHP 功能

    缓存时间设长很安全,前提是静态资源 URL 本身带版本标识(hash 或时间戳)。最容易被忽略的,是那些没走构建流程的手动上传文件——比如直接 FTP 传了个 style.css,然后靠改内容来更新,这种就必须设短,或者干脆不用浏览器缓存。

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    Tailwind CSS 响应式布局怎么写
    Tailwind CSS 响应式布局怎么写

    Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

    2026.11.03

    0

    19

    Tailwind CSS 常用类名怎么记
    Tailwind CSS 常用类名怎么记

    Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

    2026.11.03

    0

    12

    码上飞入口地址合集
    码上飞入口地址合集

    本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

    2026.11.03

    0

    10

    Uvicorn 报错与问题解决教程
    Uvicorn 报错与问题解决教程

    本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

    2026.11.02

    20

    14

    Uvicorn使用教程
    Uvicorn使用教程

    本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

    2026.11.02

    20

    17

    Uvicorn安装配置教程
    Uvicorn安装配置教程

    本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

    2026.11.02

    20

    17

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    2026.10.28

    120

    16

    Vite 如何搭配 Vue.js
    Vite 如何搭配 Vue.js

    Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

    2026.10.28

    100

    15

    Vite 项目目录怎么看
    Vite 项目目录怎么看

    Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

    2026.10.28

    300

    10

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    热门推荐
    /
    最新课程
    phpStudy极速入门视频教程
    phpStudy极速入门视频教程

    共6课时 | 54.7万人学习

    独孤九贱(4)_PHP视频教程
    独孤九贱(4)_PHP视频教程

    共89课时 | 134.1万人学习