【问题标题】:Wordpress using outdated versions of the included javascript filesWordpress 使用包含的 javascript 文件的过时版本
【发布时间】:2020-08-21 20:07:46
【问题描述】:

我经常使用 ftp 将新版本的 javascript 文件上传到我的 wordpress 网站。

但是当我访问使用 javascript 文件的页面时,它使用的是过期版本的 javascript 文件。使用文件的url示例:

myurl.com/../js/my_file.js?ver=919004c7f6ced.....8f8941dfa68c2e

但如果我直接使用myurl.com/../js/my_file.js 访问该文件,它会显示最新版本。

我假设这是由缓存我的文件的东西引起的。我已经尝试删除缓存插件的缓存并停用它,但它仍在使用过时的版本。

如何强制我的网站对某些文件使用最新版本?

【问题讨论】:

    标签: wordpress caching


    【解决方案1】:

    先介绍一下背景:包含文件上的ver 告诉浏览器要使用哪个版本,如果它已经加载了该版本,它将使用缓存的版本。这就是您在此处看到的内容 - 即使您添加了新的 js 文件,浏览器仍然使用版本 919004c7f6ced.....8f8941dfa68c2e

    此版本在 HTML 中为 页面(即不是 js 文件)指定,因此它是正在缓存的页面

    这有很多可能的原因:

    缓存

    1. 浏览器缓存:浏览器正在使用页面的缓存版本,清除浏览器缓存应该可以解决此问题。或者禁用缓存 - 请参阅下面的注释。
    2. 服务器缓存:一些托管服务器也使用缓存来最小化它们的负载,尤其是在共享托管中。如何或何时清除这取决于您的托管。请注意,如果您使用的是 CloudFlare 等服务,也可以缓存页面!
    3. 缓存插件:很明显,但为了完整性值得包括 - 缓存插件将有自己的缓存并且需要被清除。请注意,服务器和浏览器缓存仍可能具有预先清除的版本
    4. 其他带有缓存的插件:其他不是专门缓存插件的插件可以创建缓存。这包括 minifier 插件 - 它们可以使用缩小和/或组合文件创建缓存。

    代码

    1. 注册版本:您的 WP 主题将(或至少应该)使用 wp_register_scriptwp_enqueue_script 注册脚本 - 这两个函数都让代码指定要使用的版本。您应该检查创建以下版本号的代码:
    • 代码中没有更新版本
    • 根本没有指定版本,默认设置为 WP 版本(注意这里不是这种情况,但为了完整性我已经包含它)
    • 根本没有指定版本,正在被其他资源添加

    测试的临时解决方法:如果您只想立即测试新脚本,您可以重命名文件并在 wp_enqueue/register_script 函数中更改名称 - 显然这不是长期的解决方案,但如果您需要测试某些内容或使其立即可用,而无需所有用户都必须等待缓存文件被更改,它会有所帮助。

    在 Chrome 中禁用缓存仅用于调试如果问题只是浏览器缓存,您可以在调试时禁用 Chrome 中的缓存:

    • 在 DevTools 中,选择“网络”选项并选中“禁用缓存”

    这将仅在 DevTools 打开时禁用缓存,因此不会影响其他任何内容。 感谢 Daan 提供此链接:How to Completely Disable Cache in Google Chrome

    【讨论】:

    • 清除浏览器缓存成功,谢谢!我暂时阻止我的浏览器缓存使用:technipages.com/google-chrome-how-to-completely-disable-cache
    • @DaanSeuntjens 第一个!我本可以节省我的打字手指 :D 说真的,这是一个常见的问题,并且有很多原因,所以我很高兴其中一个提供了帮助。很高兴你得到了排序。不错的链接 - 我会将其包含在我的答案中!
    • 优秀而详细的答案@FluffyKitten。感谢分享!将此问题标记为 SO 上经常提出的此问题的变体!
    猜你喜欢
    • 1970-01-01
    • 2012-09-22
    • 2022-08-24
    • 2022-09-28
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多