CloudFlare或CDN通常是如何工作的?我可以强制它们获取更新的静态内容吗



我想为我的WordPress服务器打开CloudFlare,但我仍然经常进行更改。CloudFlare说它缓存静态文件(javascript、css、图像等),所以我假设如果我对这些文件进行了更改并将其保存在我的服务器上,它们不会在他们的服务器上显示更改(至少在一段时间内)。

如果我对这些文件进行更改,它们最终会传播到服务器吗?这需要多长时间?

我一直在做一个小技巧,当我进行更改时,将我的css文件的src从"my.css"更改为"my.css?v=1.1"one_answers"my.ccss?v=1.2"等,这样它就会迫使你的浏览器获取该文件的新版本,因为它会诱使它认为这是一个新文件。这是否也适用于CloudFlare,或者它是否绕过了这一点?

谢谢。

您有几个选项来管理资产的缓存时间。

如果转到域>cloudFlare设置>性能设置>最小过期TTL
您可以在2小时到1年之间进行选择。这是一个站点全局设置。

如果您转到域>页面规则,您可以自定义网站某个子部分的缓存和其他详细信息。所以这可能是你的CSS和JS目录,也可能是单个文件。

无论您使用什么设置,如果您转到域>cloudflare设置>清除缓存,您可以清除单个资产,或整个站点缓存

您仍然可以使用CSS版本控制方法。需要注意的一个细节是,如果你使用my.css?v=1.1,并且您希望cloudflare缓存它以提高性能,则需要转到domain>cloudflare Setting>Performamce Settings>Caching Level并将其设置为agrive。

如果你不这样做,访问者将从你的服务器发送CSS文件,而不是CloudFlare。

希望这能有所帮助!

CloudFlare有两个配置缓存的选项。默认值在其控制面板中进行配置。在这里,您可以设置"缓存所有内容"等选项并控制最大年龄。

但是CloudFlare也尊重您内容上的标题。我更喜欢使用这些,因为它允许我进行最精细的控制。所讨论的标头是Cache-Control。如果此收割台不存在,将使用控制面板选项。

如果您发送标头Cache-Control: no-cache,请求将始终检查您的原始服务器,以查看内容是否是最新的。请注意,这将导致每个请求都到达您的原点。这将减慢您的响应速度,尽管在很多时候您将能够提供304 NOT MODIFIED响应,因此您可能会节省一些带宽。

如果发送标头Cache-Control: max-age=3600,CloudFlare将在请求后最多max-age秒(在本例中为1小时)提供缓存内容,然后再检查源服务器。

这个标题有更多的选择,但这些都是基础。

我一直在做一个小技巧,当我进行更改时,将我的css文件的src从"my.css"更改为"my.css?v=1.1"one_answers"my.ccss?v=1.2"等,这样它就会迫使你的浏览器获取该文件的新版本,因为它会诱使它认为这是一个新文件。这是否也适用于CloudFlare,或者它是否绕过了这一点?

这仍然有效。HTTP将每个URL视为不同的实体,因此必须提取新的URL。

相关内容

最新更新