问题标签 [expires-header]

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 投票
2 回答
9918 浏览

internet-explorer - 浏览器不会从服务器请求最新的 PDF

我在 Windows Server IIS Web 服务器上有一个 PDF,用户使用这样的 HTTP 调用通过 IE8/9/10 请求它...

第一次点击将下载文件没有问题。 问题:如果管理员更新 PDF,并且用户返回重新加载它,IE 仅显示本地缓存版本,不会从服务器请求新版本。

我已经确认,在第二次请求中,IE8、IE9 和 IE10 根本不会为 PDF 文件调用服务器。甚至没有条件请求(例如,if-updated-since)。使用 Fiddler 和 WireShark 确认了这一点。但我从来没有用 Max-Age 或任何东西明确设置缓存。我没有为该文件夹设置缓存。我不希望将缓存设置为“立即过期”。它也对 Word DOC 执行此操作。

Internet Explorer 中是否存在一个错误,使其始终使用静态文档(例如 PDF、DOC)的本地副本?

这些想法不起作用:

  1. F5, CTRL+ F5, SHIFT+F5

  2. 使用 DELETE HISTORY 按钮清除浏览器历史记录和缓存。为什么这实际上并没有清除所有缓存超出了我的范围。除了密码,我已选择删除所有内容。

我知道的唯一方法是:

  1. 在本地手动删除 PDF,因为“删除历史”按钮不会删除本地版本。但大多数用户并不那么精明。

  2. 使用 Firefox,但这不是公司认可的浏览器。不要让我开始。

  3. 将服务器缓存设置为立即过期,但 pdf 与网页混合在文件夹中,我不喜欢这样做。我想将缓存最大年龄用于 CSS、脚本、图像等其他内容。

  4. 在末尾添加一个假的查询字符串,如 ?id=1,这样就可以了,但是业务线有 100 个文档,每个文档都带有必须更新的文档内的链接。

  5. 使用 FIDDLER“清除缓存”按钮或 CCleaner,但我公司的大多数用户(7 万名员工)都不是开发人员,不能拥有该软件。

有没有真正的解决方案,让 IE 表现得像我想象的那样?

0 投票
0 回答
521 浏览

.htaccess - 标题过期 - 为什么我仍然在 Google Pagespeed Insights 中收到错误消息?

我已在我的 htaccess 文件中包含以下部分。但是,当我运行 Google PageSpeed Insights 时,我仍然收到 3 个 js 文件的错误。原因可能很明显,但我看不到。唐纳德

将浏览器缓存用于以下可缓存资源:

是否有可能归咎于 htaccess 文件中的特定文件路径?即在一行中我有文本/javascript,而在另一行中我有应用程序/x-javascript。我需要加倍吗?

0 投票
2 回答
665 浏览

php - CloudFlare 正确缓存静态资源的哪些 HTTP 标头?

我有一个 Web 应用程序,其中一些图像是由 PHP 生成的。

对于那些熟悉的人,这些是您可以放在 GitHub 项目中的徽章(例如在 README 中)。

在生成这些图像 () 时,我需要使用 PHP 设置哪些标头.svg,以便 CloudFlare 将它们缓存一天?

仅供参考,我正在使用免费计划。

CloudFlare 的文档非常缺乏 IMO,我找不到任何与静态资源和 TTL 相关的内容。明确一点:我不是在缓存 HTML,而是在缓存静态资源(由 PHP 生成)。

0 投票
2 回答
8837 浏览

facebook - Facebook JS SDK 和 Google Analytics 的过期标头

我们都知道为静态资源添加一个遥远的过期日期是提高我们网站页面加载速度的好习惯。因此,我们已经确保我们所有的资源都做到了这一点,但是太常见的 Facebook JS SDK 和 Google Analytics 并没有这样做,从而降低了整个页面的速度得分。

快照商店

检查标题显示 Facebook 做了 20 分钟: Cache-Control public, max-age=1200 Connection keep-alive Content-Type application/x-javascript; charset=utf-8 日期 2014 年 9 月 23 日星期二 04:46:38 GMT Etag "566aa5d57a352e6f298ac52e73344fdc" 到期 2014 年 9 月 23 日星期二 05:06:38 GMT

和 Google Analytics 做 2 小时: 键值响应 HTTP/1.1 200 OK 日期 Tue, 23 Sep 2014 04:45:49 GMT Expires Tue, 23 Sep 23 06:45:49 GMT Last-Modified Mon, 08 Sep 2014 18:50 :13 GMT X-Content-Type-Options nosniff Content-Type text/javascript Server Golfe2 Age 1390 Cache-Control public, max-age=7200 Alternate-Protocol 80:quic,p=0.002 Content-Length 16,062

有没有办法强迫他们延长有效期?

0 投票
1 回答
319 浏览

caching - ServiceStack 4:无法为静态内容添加 Expires Header

在我的 web.config 中,我正在尝试为静态内容添加缓存:

但是,当我运行 YSlow!我仍然得到“添加过期标题”的 F 级;因此,似乎图像、CSS 和 Javascript 文件等静态内容没有被缓存。

我如何在 ServiceStack 中完成此操作,因为我所做的 web.config 更改没有被 ServiceStack 接收;这在 ASP.NET MVC 中确实有效,但是如何使用过期标头服务器静态内容?

我也试过这个,但我的静态文件仍然没有被缓存。

0 投票
0 回答
64 浏览

google-chrome - 为什么 Firefox 和 Chrome 对这些 HTTP 标头的反应不同?

我不确定我的问题是基于缺乏理解 - 还是谷歌浏览器工作不正确。

我的服务器发送以下 HTTP 标头(见自己):

Etag:"1031384541"
过期时间:星期一,2014 年 11 月 3 日 00:01:46 GMT

在重新加载时,Firefox 不会询问服务器,而是提供“200 OK”状态码(应该是这样的)。
但谷歌浏览器坚持询问服务器,然后提供“304”。

是不是我做错了什么?我应该改变什么?


顺便说一句:有趣的是,这些是 GoGrid CDN 发送的默认标头 - 我认为应该是正确的。但我也在我自己的机器上使用相同的方法(看看你自己)。

0 投票
1 回答
1604 浏览

tomcat - 如何在 Tomcat 7 中配置过期过滤器

我正在使用 grails 2.0.0。我想在 tomcat 中为静态文件添加过期标头。根据 tomcat 文档,我在 web.xml 中添加了 foll 过滤器映射

添加后,我的应用程序没有出现

我在 stacktrace.log 中收到以下错误:

请告诉我是否需要添加进行任何其他更改。

0 投票
1 回答
84 浏览

http - Http - 带有过期标头的文件是否发送请求?

我刚刚读到确实具有 Expires 标头的文件在到期之前不应再次请求。

在测试一些缓存的东西时,我想知道为什么文件确实有大小并且确实在 chrome 开发工具上的“内容下载”上消耗时间,即使它们设置了 max-age 并且应该在不发送任何请求的情况下从缓存中加载?

有什么解释吗?

标头过期,但请求

0 投票
1 回答
1220 浏览

caching - 如何在 Heroku 中为我的静态资产设置 Expires 标头?

我正在尝试通过 Heroku 为我的静态资产服务器设置 Expires 标头,但我还没有找到有关如何执行此操作的任何信息...

我找到的所有信息都解释了如何设置Cache标题:

并将其称为Expires标头,但这不是Expires 标头。

当资产Expires设置了标头时,浏览器会使用其缓存版本,甚至不会访问服务器来检查是否有新版本。

通过Cache标头,我在日志中看到了应缓存的静态文件的命中。

如何为静态资产设置Expires标题?

谢谢!

0 投票
1 回答
845 浏览

http - 过期而不是 Max-Age

我们正在使用 Google Page Speed Tool。

它说我们应该对图像使用“利用浏览器缓存”。

在 httpd.conf 中,我们使用 1 个月的“ExpiresByType”。

图像响应中的“max-age”设置为 1 个月,但“Expires”设置为 1 天。

谷歌页面速度忽略了“Max-age”并解释了“Expires”,从而给出了警告。

我们如何通过 Mod_expires 设置“Expires”而不是“Max-age”?