版本号不起作用的入队脚本

时间:2019-05-20 作者:Ryan

我正在尝试将一个自定义插件的脚本排队,我想包括一个用于缓存破坏的版本号。然而,问题是什么?ver=查询未附加到html中的脚本名称,因此缓存破坏失败。

php代码:

wp_enqueue_script(\'bundle\', plugins_url(\'dist/client.js\', __FILE__), array(), \'20190520430\', true);
以及正在生成的html标记(删除了可识别信息):

<script type="text/javascript" src="https://site.url/wp-content/plugins/plugin-name/dist/client.js"></script>
非常感谢您的帮助或解释,谢谢!

1 个回复
最合适的回答,由SO网友:Ted Stresen-Reuter 整理而成

你不需要wp_register_script() 但使用它被认为是一种最佳实践,因为它允许其他开发人员以编程方式处理包含的脚本的顺序和列表。

关于您的问题,您的代码看起来是正确的。一定要在wp_enqueue_scripts 行动(但我不认为这会影响你看到的行为)。

如果我不得不猜测,我会猜测有其他插件或系统配置正在剥离查询字符串作为缓存机制的一部分。其思想是,查询字符串参数(如果存在的话)可以阻止一些代理服务器(可能还有浏览器)缓存资源。甚至还有一些插件,如Ratify 还有可能W3 Total Cache 这将故意从资源中删除查询字符串参数。测试是否有其他插件干扰的方法是禁用它们并查看是否有任何变化。

如果您使用的是缓存服务器或CDN,它们可能也会剥离查询字符串(但似乎不太可能)。Cloudflare提供了一种维护模式,允许您在测试时短暂禁用CDN。

嗯,请告诉我你进展如何。