Wordpress - 创建插件时禁用管理面板的缓存
Posted
技术标签:
【中文标题】Wordpress - 创建插件时禁用管理面板的缓存【英文标题】:Wordpress - disable cache for admin panel while creating plugin 【发布时间】:2020-12-29 20:42:41 【问题描述】:我是第一次创建插件并面临缓存方面的主要问题。
我将我的 js 文件注册为
wp_register_script("custom-js-backend", PLUGIN_URL . 'assets/js/custom.js', array(
'jquery',
'jquery-blockui'
));
wp_enqueue_script("custom-js-backend");
但无法在管理面板上反映更改。
试过
function cache_cleanup()
remove_action('wp_head', 'wp_generator');
remove_action('wp_footer', 'wp_generator');
add_action('init', 'cache_cleanup');
也在 wp-config.php 中定义
define('WP_CACHE',false);
但没有运气。
由于默认情况下我的 js 文件带有 5.1.0 版本,因此尝试使用从中删除该版本 https://wordpress.org/plugins/disable-version-caching/
现在版本正在被删除,但文件仍然没有更新。
一种解决方案是在我的 js 文件中添加版本号,并在每次小的更改后更改版本,但这完全不对。
任何帮助如何在创建插件时禁用管理面板的缓存。
【问题讨论】:
您可以在浏览器上使用隐身模式,应该可以解决问题。 【参考方案1】:您可以使用filemtime(PLUGIN_URL . 'assets/js/custom.js')
作为版本号 - 这将使版本号,最后一次保存文件的 unix 时间 -
意思是每次你相同的文件,你会自动得到一个比上一个更高的新版本号,这样它仍然是可缓存的,但是当有变化时会被清除
它看起来像
wp_register_script("custom-js-backend", PLUGIN_URL . 'assets/js/custom.js', array(
'jquery',
'jquery-blockui'
), filemtime(PLUGIN_URL . 'assets/js/custom.js'), true);
【讨论】:
【参考方案2】:在开发过程中将此添加到.htaccess
到disable browser caching:
# Disable browser caching.
# Ensure mod_headers is installed.
# To install on Debian, run `a2enmod headers`, then restart the server.
FileETag None
Header unset ETag
Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0"
Header set Pragma "no-cache"
Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
注意:您的浏览器可能仍会缓存来自 CDN 的外部内容,但不会缓存您服务器上的任何内容。
【讨论】:
我也可以在生产版本上使用它吗? @JassPreet,缓存很好 - 网站加载速度更快。将其留在生产中。 我做了一些改进,并链接到另一个 SO 页面,其中包含有关缓存的更多信息。 好的,谢谢,我会实施它并让您知道它是否有帮助。导致版本缓存在当今的 wordpress 中非常令人头疼:(以上是关于Wordpress - 创建插件时禁用管理面板的缓存的主要内容,如果未能解决你的问题,请参考以下文章