如何识别子主题中的style.css文件的更新?

时间:2016-02-29 作者:Sabuncu

当我更新样式时。css在我的活动子主题中,不会立即获取更改。

我试着touch 但结果不一致。它曾经起作用,但下一次不起作用。等待一段时间(约15分钟)后,才识别出更改。我检查了文件的时间戳

我还需要做些什么来让WordPress知道这种风格。当前主题的css文件是否已更新?是浏览器的时间概念所涉及的决定,包括对样式的更改。css文件?

注意:我正在使用wp-enqueue-style() 方法而不是@import 用于包含父样式的方法。css。

更新:每次更新样式时,我都会在浏览器端进行刷新。css。

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

罪魁祸首是我的服务提供商(SiteGround)使用的服务器端缓存系统。他们的cPanel有一个缓存刷新设备;使用它解决了问题:

enter image description here

This stackoverflow question 也有帮助。

以下是描述系统的SiteGround页面链接:SiteGround static cache

SO网友:kaiser

问题是样式表被浏览器缓存了。这并不是WordPress特有的问题,但您在浏览器中打开的每个资源都会出现这种情况。第二件可以(也可能会)发生的事情是,您有某种服务器端缓存。只要服务器发送正确的Cache-Control 标头,否则它将无法工作,因为服务器缓存将拒绝对来自外部世界(客户端/浏览器)的命令作出反应。

除此之外,每次更改样式表时,您都可以告诉服务器您有一个新的资源。这可以通过添加查询参数来完成,如?<key>=<value>. 最简单的方法是附加上次修改文件的UNIX时间戳:

add_action( \'wp_enqueue_scripts\', function()
{
    wp_enqueue_style(
        \'child-style-css\',
        get_stylesheet_directory_uri()."/style.css",
        false,
        filemtime( get_stylesheet_directory()."/style.css" )
    );
}
这将生成如下所示的HTML标记,其中附加了查询参数ver 值为1456786622:

<link rel="stylesheet" 
    type="text/css" 
    href="https://example.com/wp-content/themes/your-theme/style.css?ver=1456786622">

SO网友:Jorin van Vilsteren

这可能是因为浏览器正在缓存css文件。尝试重新加载ctrl+F5 或适用于maccmd+shift+r.

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c