我对我的WP插件的外部JS文件所做的更改只有在我清除浏览器缓存后才会应用

时间:2018-04-21 作者:Stavros Skamagkis

我正在制作一个WordPress插件,为一些谷歌地图相关操作加载一个外部JS文件。但问题是,我对这个外部JS文件所做的更改不会立即应用并显示在Google Chrome浏览器上,而是必须删除Chrome的“图像和其他数据”缓存,以便应用我对JS文件所做的更改。

例如,我有一个alert("DynamicMap.js file was loaded succesfully.); 在文件的第一行中,但我对文本所做的更改只有在清除缓存后才适用。有人知道为什么会发生这种情况吗?如果我能阻止的话?提前谢谢。(请注意,我是在我的个人网站上在线测试插件,而不是在本地主机上。)

1 个回复
最合适的回答,由SO网友:Frank P. Walentynowicz 整理而成

使用函数filemtime($path), 哪里$path 是脚本的路径,位于wp_enqueue_script 调用,作为第四个参数(版本)。每次修改脚本时,都会绕过缓存。

更新呼叫wp_register_scriptwp_enqueue_script:

wp_register_script(\'DynamicMapScript\', plugins_url(\'DynamicMap.js\', __FILE__), array(\'jquery\'), filemtime(dirname(__FILE__) . \'/DynamicMap.js\'));
wp_enqueue_script(\'DynamicMapScript\');

结束

相关推荐

未与其余资产一起排队的JavaScript资产

我正在从事一个项目,该项目使用子主题的函数文件将样式表和单个javascript文件排队。这两个资源很好地排队。然而,当我添加一个新的已编译javascript文件时,它似乎根本不会排在原来的两个脚本之后,好像它完全忽略了我对函数的添加。php文件。知道为什么吗? <?php add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles_and_scripts\' ); function theme_enq