W3缓存、CDN、主题文件合计

时间:2012-08-13 作者:Parneix

我更新了样式。我最近安装的WordPress的css文件。更改是有效的:当以管理员身份登录时(我的博客设置为,管理员永远不会收到网站的缓存版本,而是“实时”版本),我可以看到它们。

但我的博客是通过CDN(使用W3 Total缓存)提供的。通过CDN,更改是无效的:CDN不服务于“我的主题”中修改过的文件。即使我在修改后上传了它们(仪表板>性能>CDN>上传主题文件)。

我的CDN运行在AmazonCloud前端。并且在W3 Total缓存上禁用了Minify。

通过我的CDN提供的主题文件是一个压缩版本:style。css。gzip公司

我应该从CDN中“清除”对象还是再等一会儿(已经一个多星期了)。是的,我清空了浏览器的缓存,以查看更改是否生效。还是我还遗漏了什么?

谢谢

P

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

你需要

对文件进行版本设置(通过调用style.css?ver=xxx.xxx) 并确保CloudFront发行版已启用“转发查询字符串”。这是更好的选择,因为这意味着您只需增加查询字符串中的数字,CloudFront就会自动获取此文件。

通过AWS控制台手动使文件无效(编辑发行版时有一个无效选项卡)

要启用“转发查询字符串”,请执行以下操作:

勾选“i”左侧的复选框,编辑Cloudfront发行版,然后单击工具栏中的“发行设置”按钮,转到“行为”选项卡,选择行,然后单击“编辑”,将“转发查询字符串”更改为“是”,单击“是,编辑”

SO网友:kaiser

当文件内容更改时,有一个非常简单的“技巧”来防止缓存:添加一个版本号,该版本号设置为您更改文件的最新日期/时间。

add_action( \'wp_enqueue_scripts\', \'wpse61738_non_cached_stylesheet\' );
function wpse61738_non_cached_stylesheet()
{
    wp_enqueue_style( 
        \'style-main\',
        get_stylesheet_directory_uri().\'/style.css\',
        array(),
        filemtime( get_stylesheet_directory().\'/style.css\' )
    );
}
这将附加?ver=0123456789 符合您的风格。标题中的css引用链接。只有在修改文件内容时,版本号才会更改。因此,您有了一个完美的解决方案,可以与a)服务器端缓存b)浏览器缓存和自动刷新完美配合。

SO网友:Damien

简短的回答。。。

删除所有主题文件并重新上传。有时,删除操作会清除CDN

是的,您可以尝试清除,但删除和重新上传通常更快。

查看W3TC和亚马逊中的设置。W3TC中的默认缓存通常为365天。即31536000秒:)

亚马逊的。。将设置端点以重新查询CDN。我知道在Rackspace中,默认值是24小时。

结束

相关推荐

将/CATEGORY/CARS重写为/Themes/Cars

我知道有很多关于这方面的问题和帖子,但是我找不到一个解决方案或我的特定问题的现有线索。如果我列出我的类别并单击“cars”,url如下所示url/category/cars是否可以在函数中使用某些函数。php更改单词category 进入,进入。topicsurl/topics/cars 有什么想法吗?提前感谢您!

W3缓存、CDN、主题文件合计 - 小码农CODE - 行之有效找到问题解决它

W3缓存、CDN、主题文件合计

时间:2012-08-13 作者:Parneix

我更新了样式。我最近安装的WordPress的css文件。更改是有效的:当以管理员身份登录时(我的博客设置为,管理员永远不会收到网站的缓存版本,而是“实时”版本),我可以看到它们。

但我的博客是通过CDN(使用W3 Total缓存)提供的。通过CDN,更改是无效的:CDN不服务于“我的主题”中修改过的文件。即使我在修改后上传了它们(仪表板>性能>CDN>上传主题文件)。

我的CDN运行在AmazonCloud前端。并且在W3 Total缓存上禁用了Minify。

通过我的CDN提供的主题文件是一个压缩版本:style。css。gzip公司

我应该从CDN中“清除”对象还是再等一会儿(已经一个多星期了)。是的,我清空了浏览器的缓存,以查看更改是否生效。还是我还遗漏了什么?

谢谢

P

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

你需要

对文件进行版本设置(通过调用style.css?ver=xxx.xxx) 并确保CloudFront发行版已启用“转发查询字符串”。这是更好的选择,因为这意味着您只需增加查询字符串中的数字,CloudFront就会自动获取此文件。

通过AWS控制台手动使文件无效(编辑发行版时有一个无效选项卡)

要启用“转发查询字符串”,请执行以下操作:

勾选“i”左侧的复选框,编辑Cloudfront发行版,然后单击工具栏中的“发行设置”按钮,转到“行为”选项卡,选择行,然后单击“编辑”,将“转发查询字符串”更改为“是”,单击“是,编辑”

SO网友:kaiser

当文件内容更改时,有一个非常简单的“技巧”来防止缓存:添加一个版本号,该版本号设置为您更改文件的最新日期/时间。

add_action( \'wp_enqueue_scripts\', \'wpse61738_non_cached_stylesheet\' );
function wpse61738_non_cached_stylesheet()
{
    wp_enqueue_style( 
        \'style-main\',
        get_stylesheet_directory_uri().\'/style.css\',
        array(),
        filemtime( get_stylesheet_directory().\'/style.css\' )
    );
}
这将附加?ver=0123456789 符合您的风格。标题中的css引用链接。只有在修改文件内容时,版本号才会更改。因此,您有了一个完美的解决方案,可以与a)服务器端缓存b)浏览器缓存和自动刷新完美配合。

SO网友:Damien

简短的回答。。。

删除所有主题文件并重新上传。有时,删除操作会清除CDN

是的,您可以尝试清除,但删除和重新上传通常更快。

查看W3TC和亚马逊中的设置。W3TC中的默认缓存通常为365天。即31536000秒:)

亚马逊的。。将设置端点以重新查询CDN。我知道在Rackspace中,默认值是24小时。

相关推荐

将目录符号链接到wp-Content/Themes

是否可以将我的项目文件夹中的目录符号链接到我的wp content/themes文件夹,该文件夹位于名为chassis的流浪设置中:https://github.com/Chassis/Chassis ?我尝试使用ln-s进行符号链接,但我的wordpress安装没有识别它,因为我没有在外观>主题管理面板中看到它。我想知道是否有可能做我想做的事。我假设这一直都在做,但为什么它对我不起作用呢?