当我开发Web应用程序时,我习惯在CSS URI的末尾添加?ver = XXX。
我正在更新wordpress主题,我找到了一个过滤器,可以删除任何?ver = from“static ressources”:
add_filter( 'script_loader_src', 'mb_remove_script_version', 15, 1 ); add_filter( 'style_loader_src', 'mb_remove_script_version', 15, 1 );
在网上搜索我发现没有删除ver =,CDN可能无法正常工作,也不会缓存CSS文件!当我到处使用它时,这对我来说是个大惊喜。
我使用此版本强制浏览器在修改CSS时更新其缓存(通过版本升级)。 如何强制浏览器理解文件必须再次下载而不使用ver =?
-- Thank you Nicolas.
答案 0 :(得分:1)
您可以使用Grunt(或gulp)等工具来修改资产:
https://www.npmjs.com/package/grunt-wp-assets
https://www.npmjs.com/package/gulp-rev
答案 1 :(得分:0)
感谢您的回答,以下是完整的答案:
在我的主题中,~themp / lib目录中有这个文件“theme-functions.php”。 这是使用enqueue_style函数加载css文件的文件:
wp_enqueue_style( '_mbbasetheme-style', get_template_directory_uri() . '/style.min.css' );
按照建议使用grunt,我能够实现以下步骤:
style.css
style.min.css
style.4c72.min.css
这些步骤使用以下grunt-plugins:
compass: { dist: { options: { config: 'config.rb' } } },
cssmin: { options: { keepSpecialComments: 1 }, minify: { expand: true, cwd: '', src: ['*.css', '!*.min.css'], dest: '', ext: '.min.css' } },
version: { assets: { options: { algorithm: 'sha1', length: 4, format: false, rename: false, minify: true, manifest: 'manifest.json' }, files: { 'lib/theme-functions.php': ['style.min.css'] } } },
如您所见,最后一个采用参数中的文件来更新对css文件的引用。在执行grunt(实际上是一个grunt-contrib-watch规则)之后,theme-functions.php更新为:
wp_enqueue_style( '_mbbasetheme-style', get_template_directory_uri() . '/style.4c72.min.css' );