阻止排队的样式和脚本上的版本URL参数(?ver=X.X.X)

时间:2015-04-08 作者:mrwweb

用例我一直在试用Chrome的开发工具工作区功能。它包括直接在开发工具中编辑文件的能力,以及使保存的样式表自身刷新(甚至编译然后刷新!)。

但是,如StackOverflow question "Chrome\'s “Auto-Reload Generated CSS” not reloading page when SASS recompiles CSS", 样式表URL上的URL参数阻止Chrome注意到更改。

期望的结果意味着only during development, 我想删除?ver=X.X.X 从普通样式表<link> 输出人wp_enqueue_style(). 换句话说,我想要默认值href:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1
取而代之的是:

http://localhost/mysite/wp-includes/style.css

3 个回复
最合适的回答,由SO网友:mrwweb 整理而成

默认值wp_enqueue_[style/script]() 行为default value for the $version argument 属于wp_enqueue_style()false. 然而,这个默认值只是意味着样式表被赋予了WordPress版本。

解决方案"Remove version from WordPress enqueued CSS and JS", 我得知一个未经证实的事实null 因为一个版本将完全删除该版本!

示例

wp_enqueue_style( \'wpse-styles\', get_template_directory_uri() . \'/style.css\', array(), null );
如问题中所述,值得指出的是,这可能只应该在开发过程中进行(如在特定用例中)。version参数有助于为站点访问者进行缓存(而不是缓存),因此在99%的情况下可能应该不进行缓存。

SO网友:Ricardo Andres

谢谢你的帖子,mrwweb。

我找到了另一个解决方案,通过创建一个非常简单的插件,当网站不再开发时,您可以停用它。

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( \'ver\', $src );
        return $src;
}
add_filter( \'style_loader_src\', \'switch_stylesheet_src\', 10, 2 );

?>
我花了几分钟试图找到这个解决方案。我想我可以在这里共享另一个选项,而不是创建新的问题/答案。

SO网友:Solariane

基于以下建议:@ricardo-andres, 任何时候都可以使用的代码,尤其是CDN上的资源(如jquery)——我们去掉了资源名称中包含版本的查询标记

function clean_src( $src, $handle ) {
    if (preg_match(\'_\\d[^\\?/]*\\?_\', $src))
        $src = remove_query_arg( \'ver\', $src );
    return $src;
}
add_filter( \'style_loader_src\', \'clean_src\', 10, 2 );
add_filter( \'script_loader_src\', \'clean_src\', 10, 2 );

结束

相关推荐