【发布时间】:2012-12-08 06:09:40
【问题描述】:
为了刷新缓存中的 CSS 文件,我经常使用 file.css?version=DDMMYYYY 技巧。 但是,我对这种方法有疑问。
我正在开发一个旧的外联网。 所有页面都使用相同的 CSS 文件。 Extranet 没有任何模板文件,并且这个 css 包含在 Extranet 的每个页面中。 我需要为所有 Extranet 页面刷新这个 css 文件。
我的问题是: 我想在登录页面上使用 file.css?version=DDMMYYYY 技巧。 其他页面仍将包含 file.css(没有 ?version 部分)
如果用户进入登录页面,他将收到新版本的 css 文件。 但是其他页面将使用哪个版本?旧版本(file.css)还是新版本(file.css?version=DDMMYYYY)?
也就是说,当用户进入登录页面时,哪些文件会在他的缓存中:
- file.css 和 file.css?version=DDMMYYYY
- 只有file.css,更新到新版本
对于这个初学者问题,我很抱歉,但我自己测试时遇到了一些困难。
感谢您的帮助!
【问题讨论】:
-
我 99% 确定这将是较新的版本,因为它们都具有相同的实际真实文件名。你不能测试一下看看会发生什么吗?
-
出于好奇 - 为什么需要像这样刷新 CSS?它经常变化吗?当它发生时 - 浏览器不应该自动检测到变化吗?
-
@Trekstuff 并非总是如此。取决于 HTTP 标头中包含的信息以及文件是否带有过期日期等标记。
-
为什么不到处使用
?version=DDMMYYYY?只需确保使用 css 文件的实际修改日期或静态版本号(不是当前日期)。 -
答案取决于您的服务器使用/用于 CSS 文件的过期标头。
标签: javascript css caching refresh