修复了缓存的样式表和Java脚本的版本号

时间:2015-01-22 作者:akmur

除非我使用:

wp_enqueue_style( \'dazzling-style\', get_template_directory_uri() . \'/css/main.css?ver=\', array(), rand(10,99999), \'all\' );
然后每次我访问我的站点,无论是本地还是实时,我都会看到版本是4.1,即使我上传了新的样式表或js,浏览器仍然会看到4.1版本。

发生什么事了?4.1是从哪里来的?

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

4.1来自您的WordPress版本。

此外,您不应附加ver= 手动输入src,但使用的第四个参数为wp_enqueue_style.

SO网友:kaiser

解决方案很简单:使用last time the file was changed 作为版本号。您可以使用filemtime() (文件修改时间)位于文件的路径上。示例:

wp_enqueue_style(
    \'your-handle\',
    get_template_directory_uri().\'/assets/style.css\', # use plugin_dir_url( __FILE__ ) for plugins
    array( \'dependencies\', ), # use [] for PHP 5.4+
    filemtime( get_template_directory().\'/assets/style.css\' ) # use plugin_dir_path( __FILE__ ) for plugins
);
这将附加UNIX时间戳作为版本号。它会的stay that way 直到您再次更改样式表。这是我所知道的最方便的方法。它会一直缓存在浏览器中,直到发生更改。顺便说一句,在开发过程中,它与手表和livereload任务完美配合。

如果你(在评论中)问WordPress为什么不按默认值这样做,那么我的答案是<嗯,好吧。WordPress

SO网友:Maikal

尝试删除?ver=

4.1来自wordpress,默认设置为wordpress版本

结束

相关推荐

Wp_cacheset()中的“尽可能长”有多长?

这个documentation for wp_cache_set() 表示如果您将0传递给$expire (这也是默认设置),然后缓存“尽可能长”。这有多长?什么决定了它?我们谈的是小时还是天?在我的例子中:我在一个由100多个博客组成的多站点网络上有一个非常昂贵的SQL查询,其结果可以缓存数周(真的是永远的-可以在需要时手动刷新)。我应该使用WordPress的缓存还是自己整理?