【问题标题】:What is the proper way of utilizing browser cache without using expiration?在不使用过期的情况下使用浏览器缓存的正确方法是什么?
【发布时间】:2011-04-14 21:24:22
【问题描述】:

我不想使用过期,因为我不知道我的资源(css、js 等)多久会更改一次。一个案例可能是我将某些东西推向生产,但很快就会发现我的资源中有一些错误。所以我修复了错误,然后将更新的资源推送到生产中,但它们在到期日期之前就已经在生产中了。如何强制浏览器使用更新的资源而不是缓存?

我不想使用指纹识别(基于版本类型的动态资源文件名),因为这些资源位于 svn 目录中。意思是,每次更改代码版本时,我都必须使用 svn 手动修改文件名(也许有一些自动化的方法?)。

使用http-equiv="last-modified" 将是首选选项,但这似乎无法正常工作。

也许我只是不知道这一切是如何运作的。请赐教。非常感谢。

-- 三

【问题讨论】:

    标签: html browser-cache


    【解决方案1】:

    一种选择是让对这些资源的所有引用都将版本号附加到查询字符串或 URL 中的其他位置,例如“styles/site.css?version=1.0”。这样一来,由于 URL 将在您的下一个版本中更改,您的浏览器会将其视为不同的 URL,并且不会使用缓存中的文件。

    如果您曾经改用 CDN,将所有资源部署到版本编号的文件夹可以实现相同的目标。

    【讨论】:

    • 嗯,那不就是指纹识别吗?
    • 没有。您不必重命名文件;您可以通过添加查询字符串来引用它。
    • 哦哦哦我现在明白了。这很酷。谢谢。顺便说一句,什么是 CDN?
    • 内容分发网络。 Akamai 是 CDN 提供商的一个示例。
    猜你喜欢
    • 2010-11-25
    • 2011-03-26
    • 2011-07-03
    • 1970-01-01
    • 2017-07-20
    • 2011-12-18
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多