问题标签 [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.
linux - 为什么浏览器请求文件,即使启用了 Apache mod_expires?
我真的对所有这些缓存的东西感到困惑。我正在尝试设置mod_expires
以减少HTTP Requests
从我的网站到服务器的数量。
到目前为止我做得很好,我根据http://httpd.apache.org/docs/2.0/mod/mod_expires.htmlmod_expires
上的说明安装并编写了一个小的 .conf 文件。
现在,例如,我所有的.png, .gif, .jpeg
文件都有一个Cache-Control
标题。GET Request
我的预期结果是,浏览器在时间段内不会做任何事情(从Cache-Control
值给出)。但确实如此,每个文件都会触发一个请求并接收HTTP 304 not Modified
.
那是错误的行为,不是吗?它应该从内部缓存加载这些文件。我不明白的一件事是,浏览器发送一个Response header
: Cache-Control: max-age=0
。应该是这样吗?
Request + Response headers
这是一个完整的例子.png file
:
要求
回复
apache - 添加没有 mod_expires 的过期标头?
我知道我可以使用 mod_expires 添加过期标头。但是,如果 Apache 服务器没有安装 mod_expires 并且我不想通过像 PHP 这样的脚本语言来路由对文件的访问,我该怎么办?
php - 带有 .php 输出 javascript 的过期标头
我在 PHP 中为我的所有 JS 和 CSS 文件创建了一个 minify/obfusctor/gzip 脚本,但我不能过期,但我已将它放在我的 .htaccess 中:
即使提取器是 PHP 文件,我也想使所有类型的text/javascript和text/css过期。
我怎样才能做到这一点?
谢谢!
是的,我把header("Content-Type: text/javascript; charset=UTF-8");
这是整个 HTTP 标头:
php - Apache:如何在未安装 mod_expires 的情况下将 Expires 标头添加到文件中
我在运行 Apache 的共享主机上。显然 mod_expires 没有安装。是否有另一种方法可以在该环境中将过期标头添加到 css 文件、图像等?
apache2 - 在 Apache2 上运行命令不确定结果
ls /etc/apache2/mods-enabled | grep 过期
它什么都不返回是否意味着我在服务器上没有 mod_expires?
apache - Apache:在重写之前将规则应用于 URL
我有一个简单的 RewriteRule:
这用于缓存清除。随着每个网站的发布,我都会更改 url 前缀,例如:
/r/17/img/image.jpg
得到/img/image.jpg
.
例如,我想将长到期标题应用于这些
当然这不起作用,因为在应用 RewriteRule 后,目录不再匹配。如何将 Directory 指令中的这些规则应用于通过 访问的 URL /r/
?
谢谢!
php - PHP session_start() 覆盖 HTTP Expires 标头
我正在尝试使用 mod_expires 将 Expire 标头设置为从访问 text/html 开始 2 小时:
然而,当与 PHP 一起使用时:
过期标头正在重置为:
任何想法如何避免被覆盖session_start()
?
php - .htaccess:缓存控制,我如何处理网站更新?
我刚刚搜索了网络,但找不到一个好的答案:
FF 的 Google 页面速度扩展告诉我在我的网站 (PHP) 上缓存文件。因此,我更新了我的.htaccess
(在我的网站测试版区域)以缓存某些类型的文件:
在 beta 区域编码时,我注意到由于缓存控制设置,我需要按F5以获取最新的 .css 文件。这对我来说还不错……但是用户呢?
那么,当我更新我的网站(或文件过期)时,我可以告诉浏览器(仅)重新下载所有文件,如果没有,则使用缓存?
如果我可以告诉浏览器:“嘿,更新时间之前的所有文件都是旧的,请重新下载它们 - 但是更新时间之后的文件还可以,使用缓存。”
apache - mod_expires 未在 JPEG 图像上设置缓存控制标头
我无法弄清楚为什么< 10 KB
我正在处理的网站中的普通旧 JPEG 图像(每个大约十几个)不会采用它们被强制馈送的缓存控制标头。.htaccess
我使用的规则基于最新的HTML5 Boilerplate .htaccess 文件(下面的相关部分)。奇怪的是,站点中的 PNG 数量大致相同,除了其中两个之外,缓存控制标头工作得很好。
ExpiresByType
(省略号表示删除了多余的规则部分)
我已经从我的/etc/apache2/apache2.conf
文件一直到从那里包含的几乎所有 conf 文件,但找不到合理的解释。我也摆弄过,Pagesped 和 Chrome 审计了几个小时,我仍然一无所知。
编辑:如下所述,该网站的 Web 根目录中只有一个.htaccess
文件。JPEG 的 mime 类型image/jpeg
很好,但缺少缓存控制标头,我不知道为什么。
apache - 将 ExpiresDefault 添加到 .htaccess 文件
我已更新我的 .htaccess 文件以包含以下内容:
我试图告诉客户所有 css 和 js 都不会更改 1 个月,以便他们可以缓存文件。
我有2个问题,
- 这会达到我想要的吗
由于添加了我现在收到 500 错误,整个 .htaccess 文件如下:
/li>