CSS缓存更新和CDN

时间:2015-06-14 15:17:11

标签: html css wordpress caching

当我开发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.

2 个答案:

答案 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,我能够实现以下步骤:

  • 指南针SASS文件并创建一个唯一的css文件==> style.css
  • 缩小我唯一的css文件以使其更轻==> style.min.css
  • 版本我的css文件,以创建一个唯一的文件名==> style.4c72.min.css

这些步骤使用以下grunt-plugins:

  • grunt-contrib-compass:在Gruntfile.js中使用此grunt规则
        compass: {
            dist: {
                options: {
                    config: 'config.rb'
                }
            }
        },
  • grunt-contrib-cssmin:在Gruntfile.js中使用此grunt规则
        cssmin: {
            options: {
                keepSpecialComments: 1
            },
            minify: {
                expand: true,
                cwd: '',
                src: ['*.css', '!*.min.css'],
                dest: '',
                ext: '.min.css'
            }
        },
  • grunt-wp-assets:在Gruntfile.js中使用此grunt规则
        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' );

相关问题