【发布时间】:2021-05-26 04:22:50
【问题描述】:
好的,所以我正在尝试从 CF 的免费计划中受益,并尽可能多地利用它。主要目标是从 CF 缓存中获取网站服务,以便它在浏览器中加载得更快,即使仅适用于首次访问和搜索引擎。它是一个 Wordpress,所以它可能比其他网站慢一点。 因此,为了正确设置 CF 缓存,我设置了以下规则。您可能知道免费计划下 3 是最大值:
https://example.com/wp-content/*
Browser Cache TTL: a year, Cache Level: Cache Everything, Edge Cache TTL: a month
https://example.com/wp-admin/*
Security Level: High, Cache Level: Bypass, Disable Apps, Disable Performance
https://example.com/*
Auto Minify: HTML, CSS & JS, Browser Cache TTL: 30 minutes, Cache Level: No Query String, Edge Cache TTL: 2 hours, Email Obfuscation: On, Automatic HTTPS Rewrites: On
完全按照这个顺序。这些应该允许 CF 在最长的时间内缓存存储在 wp-content 中的文件(上传等),然后忽略并绕过 wp-admin 并最终为所有其他文件提供服务(在我的情况下是产品、博客文章、页面和等等)从它的缓存中,尽管这些应该有更短的时间。我还在 Cloudflare 仪表板中将缓存级别设置为“No query string”。
到目前为止,CF 缓存了上述所有内容,首次访问者或搜索引擎应该会获得一个超快的页面。
接下来,我在网站的页脚中添加了以下内容:
<script>jQuery(document).ready(function(){var e="?"+(new Date).getTime();jQuery("a").each(function(){jQuery(this).attr("href",jQuery(this).attr("href")+e)})})</script>
此脚本将当前日期附加到页面上的所有链接。通过这样做,我希望访问者获取页面的最新版本(即来自我的服务器),而不是 CF 存储的页面,因为 CF 不应像之前指示的那样在两个缓存中缓存 ULR,例如 https://example.com/samplepage?234523445345设置和页面规则。
现在,我担心的是 CF 缓存属于已登录成员的页面,例如帐户详细信息。虽然字符串 javascript 确实有效,并且成员会单击 /account?23456456 之类的链接,因此该页面不应被缓存,但我不得不想知道“如果怎么办?”。
那么,有没有更好的方法来实现我想要的(快速加载而不缓存成员页面和敏感细节,例如购物车)?或者这是我可以从免费计划中获得的最大收益?
【问题讨论】:
标签: wordpress caching cdn cloudflare