问题标签 [mod-expires]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
895 浏览

apache - 即使禁用 mod_expires,Apache 仍然从缓存中加载

测试这个网址 http://getapple.net/phpbb/banners.js

它返回 304,文件未修改。

我曾经启用插件“mod_expires”并将js设置为缓存1个月。

但现在我想重置规则。我尝试评论这一行

ExpiresByType application/javascript "access 1 month"

然后重新启动apache。

但是文件仍然从缓存中加载。(响应标头在 Chrome 浏览器中返回 304)

但是在我运行这个之后

在命令行中,结果是

我不知道我做错了什么。请建议如何通过 url 获取我的文件的更新版本。

非常感谢。

0 投票
1 回答
1432 浏览

apache - Apache不缓存静态内容

我阅读了最新 Apache httpd 版本的官方缓存指南,但不明白如何获得静态内容的最小缓存设置。

谷歌搜索,我终于将这些规则添加到我的 /etc/apache2/apache2.conf 中(我使用的是 Ubuntu):

显然,我已经启用了 expires、headers、cache 模块。

当我尝试访问图像、css 或 js 文件时,我第一次看到 200 OK,接下来看到 304。所以,我认为我是对的......但谷歌 Pagespeed(例如)仍然抱怨没有缓存的文件。

实际上,我有一些怀疑我遗漏了一些东西:

  • 我没有激活 mod_cache 或 mod_cache_disk。我是不是该?这样做的基本规则是什么?
  • 为什么需要禁用 ETag?
  • 当文件更改时,我绝对需要我的缓存突然过期:理想情况下,过期时间(对于 css,js)可能很长,比如说,两周,但如果文件在一小时后更改,用户应该强制获取更新的文件!该行为是否由 Apache 自动管理?
0 投票
0 回答
2721 浏览

apache - .htaccess 使特定文件的标头过期

我一直在使用 .htaccess 文件中的 ExpiresByType 和 mime 类型设置一般缓存持续时间。

但是,我有一些单独的文件,我想为该 mime 类型的通用设置指定不同的(更长的)缓存持续时间。有没有办法将缓存持续时间应用于特定的命名文件?

0 投票
1 回答
1723 浏览

.htaccess - 在 Yslow 上添加 Expires 标头没有任何效果

我在服务器上启用了 mod_expires 和 mod_headers,并在 htaccess 中启用了此代码:

在 Google pagespeed 的 GTmatrix 中,我有 100%,但在 Yslow 上,“添加过期标题”为 0。我已经尝试了一切,但似乎无法让 Yslow 工作。有人可以帮忙吗?谢谢。

0 投票
2 回答
584 浏览

wordpress - 是否可以使用 htaccess 检查用户 admin

如果用户是像 current_user_can('administrator') 这样的管理员,我想发送无缓存标头

所以浏览器不会缓存一些资源。(为了防止每次都按 ctrl + f5 )

近解决方案也欢迎。

在搜索过程中我发现

是否可以使用上述方法发送无缓存标头?

0 投票
1 回答
3720 浏览

php - Apache 不会为 PHP 脚本设置标头

这个.htaccess文件:

...在我的开发框(Windows 框,Apache/2.4.10,PHP 作为 Apache 模块运行)中按预期工作,其中“工作”意味着它为所有资源(静态或动态)生成适当的标头。

但是,在我的生产服务器(Linux 机器、Apache/2.2.31、PHP 作为 FastCGI 和 mod_fcgid/2.3.9 运行)中,它仅适用于静态资产,不适用于 PHP 脚本。

我是否正确怀疑差异来自 PHP SAPI?有没有办法修复它,所以我不需要复制生成 HTTP 标头的代码?

0 投票
1 回答
175 浏览

google-chrome - chrome 和 safari 不完全支持 mod_expires 缓存指令

我们希望使用缓存指令告诉浏览器只有在我们修改了资源时才从源(我们的服务器)获取资源。根据 Apache,我们可以使用“修改”基本子句以及“访问”。

http://httpd.apache.org/docs/2.2/mod/mod_expires.html

我们发现所有浏览器都支持“访问”,但 Chrome 和 Safari 不支持“修改”。我们尝试了以下两种语法:

当我们使用“访问”时,我们可以在浏览器的检查器中看到 Expires Header 设置为 Date Header 之后的 1 分钟。但是,当我们使用“修改”时,Expires 标头与日期标头完全匹配。

任何人都知道使用所有主要浏览器都支持的“修改”的方法吗?

0 投票
0 回答
125 浏览

apache - Htaccess 问题。浏览器缓存 text/php 很长时间,即使我在 htaccess 中指定它应该只保留 1 小时

我不知道我做错了什么。虽然我很欣赏缓存的想法以及它在多大程度上加快了加载速度,但显然我无法在此功能方面正确设置我的服务器。

所以,我正在制作一个非常动态的网站(博客,有点),每小时更新一次。我想,嘿,也许我应该将 text/php 和 text/html 内容的缓存设置为 1 小时?

我就是这样做的(我想是的?):

然而......它不起作用。即使在访问后 1 小时后,内容仍然不会为客户端刷新。在几个不同的 PC 中的几个浏览器中对其进行了测试。Nada,一小时后它不会更新,除非我强迫它。

我是否误解了 expires 是如何工作的?

0 投票
2 回答
8226 浏览

apache - Apache2 mod_expires 不工作

我最近在支持 Apache2 的 VPS 上部署了一个网站,并且正在研究 YSlow 的性能改进建议。这些改进包括使用 mod_deflate 和 mod_expires,由于我有 root 访问权限,我可以直接编辑 Apache 配置文件。

mod_deflate 现在正在工作,但是我遇到了 mod_expires 的问题,所以这就是我所做的:

启用 expires 模块并重新启动服务器

在 mods_enabled 下创建一个新文件“expires.conf”,其中包含以下内容:

但是,当检查网络下的各种浏览器开发工具时,文件显示无缓存控制。

我想在位于我网站根目录的 .htaccess 中使用上面的 mod_expires 脚本:/var/www/sitename/public_html,因为 .htaccess 中的设置会覆盖 apache 配置文件中的任何先前设置。

为此,我在 apache2.conf 中启用了 htaccess。

我通过自愿在其中引入错误来测试我的 htaccess 文件确实可以正常工作(注释掉 IfModule 打开标记)。刷新浏览器给了我一个 500 服务器错误。因此正在处理 htaccess 文件。

不幸的是,浏览器开发工具仍然没有显示缓存控制,我的想法已经不多了。

我错过了什么吗?谢谢!

0 投票
0 回答
174 浏览

wordpress - mod_expires - 重置头缓存

我试过mod_expires了,但我犯了缓存整个网络内容(不仅是特定资源)的错误,所以问题是当有人打开网站时(即使是第一次),他们会看到旧内容。

在我关闭mod_expires(默认值)后,问题仍然存在。即使是 Google 页面洞察力仍然会看到旧内容。只能CTRL + F5解决问题,但这不是解决方案。我不明白为什么新访问仍然看到旧内容?