在WooCommerce中强制重载style.css

n3h0vuf2  于 2023-02-20  发布在  其他
关注(0)|答案(3)|浏览(174)

我想强制用户重新加载style.css,因为他们的浏览器缓存可能会搞砸设计。我正在尝试使用一个版本(fidoe.style.css?ver=2)。
这是最好的方法吗?最终我可能会考虑在link上运行这个动态。但是现在我甚至不能让它工作。
我使用的是Salient Theme,他们有一个enqueue.php脚本,如果我是正确的,它会加载.css文件。现在,我已经将?ver=2添加到下面的代码中。但是,这仍然改变了我浏览主页时的输出。2我已经清除了缓存并仔细检查了是否允许查询字符串。3但是服务器缓存和WP火箭似乎允许这样做。关于如何让这个工作强制style.css重新加载,有什么建议吗?

if( is_child_theme() ) {
    $nectar_theme_version = nectar_get_theme_version();
    wp_register_style( 'salient-child-style', get_stylesheet_directory_uri() . '/style.css?ver=2', '', $nectar_theme_version );
    wp_enqueue_style( 'salient-child-style' );
}

更新日期:

我试过将代码更改为/style2.css。这似乎确实更新了输出。所以似乎我的设置是正确的,但查询被切断了。

qvsjd97n

qvsjd97n1#

我会使用filemtime编程版本,即使版本没有显示,浏览器 * 应该 * 阅读新文件:

if( is_child_theme() ) {
        wp_enqueue_style( 
            'salient-child-style', 
            get_stylesheet_directory_uri() . '/style.css', 
            [], 
            filemtime( get_stylesheet_directory() . '/style.css' )
        );
    }

基本上,这将得到文件的修改时间,如果它不同,版本将更新,并让浏览器知道版本的变化。此外,你真的不需要一个单独的wp_register_style,但如果你想保留它:

if( is_child_theme() ) {
        $nectar_theme_version = nectar_get_theme_version();
        wp_register_style( 'salient-child-style', get_stylesheet_directory_uri() . '/style.css', '', filemtime( get_stylesheet_directory() . '/style.css' ) );
        wp_enqueue_style( 'salient-child-style' );
    }
7ajki6be

7ajki6be2#

把这些 meta标签放到header.php文件中(在head标签里面):

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
kwvwclae

kwvwclae3#

最好的方法是在每次更新后给你的样式一个版本!

style.css?ver=1.0

style.css?ver=2.0

style.css?ver=3.0

相关问题