引言我们经常说“CDN 能提高加载速度”,但 CDN 到底是怎么做到的?为什么它对首屏加载这么重要?先来一个日常小场景:你在杭州部署了一个 Vue 应用,放在你公司的服务器上。...[contenthash:8].js', } }}当文件变更时,CDN 会重新拉取新的版本(不同 URL),旧缓存自动失效,解决“缓存更新问题”。...:路径规则:*.js/*.css/*.png缓存时间:30 天开启 HTTPS 加速,绑定 SSL 证书Cloudflare 免费版配置注册域名并接入 Cloudflare DNS默认即开启全站 CDN...文件版本更新不及时场景:前端更新上线,但部分用户仍加载旧 CSS 文件解决方式:打上 hash 值并设置 CDN 缓存规则,确保每次更新都重新拉取资源。...Q2:CDN 缓存了老资源怎么强制刷新?答:可以通过版本号更新机制规避强制刷新问题。如果实在要清理,可登录 CDN 控制台手动“刷新缓存”(如阿里云有“刷新 URL 缓存”功能)。
选伪静态还是纯静态?先搞懂这俩到底啥区别刚开始搞网站的时候,好多人都卡在这一步:听说静态页面对 SEO 好,可伪静态又方便维护,到底咋选呢?别慌,咱们先弄明白这俩货的本质区别。...但麻烦的是,每次更新内容都得重新生成所有页面,要是文章多的网站,这工作量可不小。伪静态呢,看着像静态文件(比如后缀也是.html),其实还是动态脚本生成的。...具体咋判断?看这 3 点网站类型:要是博客、个人主页这种更新频率低的,纯静态挺合适,反正更新少,生成一次能用好久。...同时,做一个好看的 404 页面,告诉用户页面找不到了,还能引导他们回首页或者搜索其他内容。3. 选了纯静态,这些技巧让你效率翻倍选纯静态的朋友也别觉得麻烦,掌握这几个方法,能省不少时间和精力。...可以用 CDN 缓存静态文件,比如阿里云 OSS、腾讯云 COS,把图片、CSS、JS 等静态资源存在 CDN 节点上,用户访问时从最近的节点获取,速度更快,还能减轻服务器压力。
当任一对象存储的文件更新时,同步服务需同时调用EO和ESA的缓存刷新API,清除全球边缘节点旧缓存。...当文件内容变更时,其URL路径随之改变。此策略是最佳实践,它使得旧文件的缓存无需主动清理,新文件请求会自然回源拉取并缓存。结合CI/CD流水线,在构建阶段自动生成带哈希的文件名并更新引用。...三、更新触发与全局刷新机制当静态文件在主存储更新并同步至从存储后,必须主动失效两大CDN网络中的旧缓存,确保用户获取最新内容。...基于存储事件的自动化刷新(推荐):将缓存刷新逻辑集成到上述的“事件驱动同步”云函数中。实现流程为:COS文件更新事件触发SCF。SCF首先将文件同步至阿里云OSS。...回源流量激增可能意味着缓存大量失效或遭受攻击。同步链路监控:文件同步:监控SCF函数执行日志、COS/OSS文件列表一致性,以及EO/ESA缓存刷新任务的执行状态与完成进度。
在已经过期或者出错的页面上不停地肝,然后来问为什么...2.1 强制同步:打破陈旧视图一个简单的例子就是: 用户修改了个人资料,保存后页面显示的还是旧信息。刷新页面后显示正常。...2.2 服务端状态与中间层缓存再一个简单的例子就是: 管理后台更新了商品价格,部分用户看到的还是老价格。清缓存或等待一段时间后恢复。这种问题的常态是对后端发出:“这是什么?”和“这又是为什么?”...的灵魂拷问。其背后逻辑是:CDN缓存 (Content Delivery Network),CDN是内容分发网络,你可以理解为快递中心的物流中转站, CDN节点缓存了静态内容甚至部分动态内容。...跟隔壁的“长安运荔枝”是一个逻辑!当源站更新后,CDN节点可能未及时刷新(缓存过期时间TTL未到或刷新机制延迟)。刷新操作本身通常不直接影响CDN,但用户端的刷新会请求穿透到源站,暴露问题。...清除特定站点的Cookies。2. 强缓存资源失效: JS/CSS文件被强缓存,但文件名未使用内容哈希(Content Hash)导致更新后浏览器仍用旧文件。清除缓存是用户端解决方案。3.
介绍了前端项目部署在 CDN 上因缓存未及时刷新导致静态资源访问异常的问题,提出在构建打包时为文件或文件夹添加版本号标识(递增版本号、Hash 值或时间戳)并保留旧资源的解决方案,确保资源更新后仍可正常访问...提供了目录结构示例与参考代码链接。背景前端项目会部署在云服务商的 CDN 上面,CDN 的缓存如果不强制刷新目录的话,会定期刷新缓存。...from=others,缓存还没有刷新,仍旧在访问已经不存在的静态资源,就会导致诸如白屏这样的前端事故。解决方案前端项目构建打包的时候,需要在文件或文件夹上加上特定版本号的标识,并且旧的资源需要保留。...版本号可以是递增的版本号 (v1.0.0 => v1.0.1)、根据文件生成的 Hash 值、时间戳。案例构建打包出来的页面结构互相独立。...版权声明本文为原创文章,作者保留版权。转载请保留本文完整内容,并以超链接形式注明作者及原文出处。作者: 除除原文: http://blog.mazey.net/2161.html(完)
这里特别需要注意的一点是这里的命中状态仅表征CDN的L1节点的命中状态,当CDN的L1节点未命中缓存但是L2节点命中缓存的情况下这里仍然会显示MISS。...CDN的刷新和预热功能 CDN提供了刷新缓存和预热缓存两个操作。两个操作都会对缓存命中率有影响,但是两个操作的影响是完全相反的。因此用户是需要了解两个操作的概念以及使用场景。...刷新功能是指将特定URL或者目录下的所有历史缓存的内容清除掉,该操作常用于源站进行同名更新后导致CDN缓存内容已为历史脏数据,刷新后将使URL下次访问时直接回源。因此会导致命中率下降。...另外特别注意CDN控制台上配置的缓存时间为0秒时该资源并不是客户端直接请求到源站的,而是客户端请求仍然会先到CDN节点,然后由CDN节点触发回源请求到源站获取资源,并且流出流量仍然会计算CDN的流出流量...这样即实现了OSS本身资源的安全防护而又不影响CDN的缓存命中率。 5.
当涉及静态资源的更新操作的时候,更多的除了使用 URL 维度外,还会依靠附加参数的形式,进行 CDN 缓存的“更新”。但这个“更新”实际是静态资源生成新的 CDN 缓存。...2.4 刷新预热 刷新(即:清理 CDN 缓存) 通过提供文件 URL 或目录的方式,强制CDN节点回源拉取最新的文件。...~'; 以上例子为阿里云 CDN,具体设置缓存过期时间,请参照 CDN 服务商文档进行设置。...对于动态文件(eg:php | jsp | asp),建议设置缓存时间为 0s,即不缓存;若动态文件例如 php 文件内容更新频率较低,推荐设置较短缓存时间 —— 摘自《阿里云说明文档》 参考文档: 服务器端设置过期时间...浏览器会基于请求的上下文来为这个请求头设置合适的值,比如获取一个CSS层叠样式表时值与获取图片、视频或脚本文件时的值是不同的。
如果用户点击“刷新”按钮或缓存时间消失,浏览器会发送请求,并根据Last-Modified/ETag判断内容是否有更新,如果内容没更新,服务器返回304。 上线后,来了一大波需求。于是改完再发一次。...依然是直接将html和资源文件丢到线上,直接访问页面地址,咦?怎么没生效?哦,原来是缓存作祟。html更新了,但是读取的a.css和a.js还是浏览器缓存里面的内容,没有更新到最新。...v=0.01"> 下次更新的时候,升级版本就行了。恩,浏览器缓存导致更新不生效的问题终于解决了。...我们发布项目的时候,资源文件和主文件是分开发的,资源文件部署在CDN中,主文件部署在服务器,这时是先发CDN还是先发主文件呢?...先发资源文件,之前的资源文件被覆盖,在主文件发布成功之前,没有缓存或强制刷新的用户,会导致页面错乱 先发主文件,在资源文件发布成功之前,用户访问到得资源文件都是旧的 两种方式都有问题,继续调整。
你可以尝试在你的网站上修改一个CSS样式,然后推送到网站上,在缓存等全部刷新后,进入网站,样式仍然无法生效,需要手动强制刷新才能显示最新的效果,这就是浏览器的默认缓存,我们所要做的就是合理利用这部分内容...此外,更新滞后 也是经常遇到的问题,默认情况下,新的 SW 需要等到旧 SW 释放后才会生效,这可能导致网站更新无法及时反映到用户端,而SWPP就解决了这些痛点,我们可以自行定义缓存过期时间,并且可以实现增量更新...其中track_link是增量更新的配置,如果设置为false将严格按照缓存时间进行过期,不会自动检测并更新文件,建议开启。...查看效果 部署到前端后,你可以F12打开控制台,点击应用,查看缓存空间,不出所料,会出现一个名为BlogCache的内容,后面有每一项的缓存时间,你可以尝试更新一下css然后再到前端刷新,不出所料,在博客的.../swpp/update.json会看到对应的修改文件的后半部分,在前端你也会看到CSS的缓存时间更新了,这就是增量更新生效了,当然缓存刷新有一定的CD,默认为十分钟,可以尝试部署成功后,十分钟后再测试
RAM 和 CPU,会减慢加载时间,并在用户的计算机或设备以及数据库上投入更多精力。...但是,使用缓存系统,页面会呈现一次,然后存储为静态 HTML 文件,从而减少每个新访问者的加载时间。 简而言之,缓存是将站点的某些资产存储在本地 PC 或浏览器等设备上的能力,以便将来轻松访问。...这也将更新 blogrolls(即在您的主页或博客页面上)以显示新帖子。 更新帖子: 启用- 在更新帖子或页面时清除缓存文件。...2、删除缓存 手动删除缓存是一项高级功能,只有购买插件的商业版才能使用。启用后,它允许您刷新缓存以及缩小的 CSS/JS 文件。...择从每分钟一次到每年一次的时间段 – 建议大多数网站每天刷新。 框中的第一个选项是If REQUEST_URI。单击以查看包含四个选项的下拉菜单:全部、主页、开头为和等于。
问题 最近在修改更新我的 IT-Homer博客 时,遇到了一个问题:本地更新了style.css后,不管怎么更新CDN缓存,还是Ctrl + F5 刷新浏览器,博客仍然加载的旧的style.css文件。...现在问题来了,通过.htaccess设置的css、js缓存都有一个过期时间,如果在访客的浏览器中已经缓存了css、js,在这些css、js缓存未过期之前,浏览器只会从缓存中读取css和js,如果你在服务器上修改了...css和js,那么这些更改在回头客的浏览器中是不会有变化的,除非回头客按了Ctrl + F5刷新了你的网站页面或者手动清空了浏览器的缓存。...一个网站的访客成千上万,回头客也会有不少,你不可能在更新css后让每个访客都刷新一下缓存吧,那么这个问题你会怎么处理呢? 处理办法 1....在你更新了网站的css文件内容后,在更换一下css的文件名就可以了。
全局所有js文件,css文件动态按需加载,注意这个按需加载并不是你开启了这个功能就加载对应的文件,而是说这个页面有这个功能,才会加载这个文件。...优化措施 首先分享一下我的建议以及可以优化速度的有效措施 前台优化:使用CDN加速 前台优化:图片使用OSS/COS等第三方储存 后台优化:不建议使用全静态缓存,会导致很多交互功能不能用 后台优化:推荐使用...(default "2");OPcache设置缓存的过期时间(单位是秒);几秒内内容不会刷新,如果需要实时更新可以设置为 0opcache.fast_shutdown=1(default “0”);...之前就有网友叫我加一个显示sql查询数量以及php渲染时间的功能,其实这个一直都是有的,使用火狐浏览器或者Chrome浏览器按F12进入浏览器控制台Console就能看到了。...你可以测试一下,未开缓存以及开启缓存的实际效果。 image.png 最后温馨提醒: 主题更新或者更新重要内容请记得刷新缓存! 适当优化,如果未优化就能低于500毫秒那就不建议再做优化了
为何网站更新文章访问无法显示如果使用cdn服务的情况下,新的网页信息未同步到各个节点的服务器上所以造成,已更新的文章无法显示这个时候选择需要更新的域名全部缓存既可以进行所有新数据更新,用户再访问的时候就会看到新发布的文章数据...图片除了手动更新cdn缓存服务还提供了自动更新的服务,在此处设置缓存时间即可。图片节点缓存过期配置可以设置源站资源在 CDN 节点的缓存过期时间,以调整源站资源在 CDN 节点缓存更新频率。...您可以根据业务需求,按目录、文件后缀名、文件全路径配置资源的缓存过期时间。功能介绍CDN 会根据节点缓存过期配置的缓存过期时间,判断 CDN 节点的缓存资源是否过期。...缓存过期时间过短,会导致 CDN 频繁回源,增加源站的带宽;缓存过期时间过长,会导致 CDN 缓存更新慢,影响用户获取最新的资源。CDN 节点会按照 腾讯云 CDN 缓存规则及优先级 缓存资源。...旧版本的节点缓存过期配置文档查看:节点缓存过期配置 (旧)源站可通过设置响应头 Cache-Control 控制 CDN 节点的缓存过期时间(缓存选项为:遵循源站),同时 CDN 节点将 Cache-Control
博客改了一下字体,字体放在了腾讯OSS里,好家伙,这下肯定比把字体文件放本地好多了,下面简单记录一下改字体的过程,其实不复杂,就是在那个字体跨域废了点时间,主要还是我菜,但是经过折腾后发现,还是把选择把字体文件存在...转换字体文件格式 我们下载好,打卡压缩包就会看到 tff 后缀的字体文件 根据浏览器版本的不同,各种浏览器有时间不会识别读写出来此文件后缀格式,自然文字也不会读写出来,这时间我们就需要准备好多类型的字体文件格式...css文件定义属性,一般是style.css @font-face{ font-family: 'qz'; src: url('文件直链.tff'); src: url...} 最后在body里加上,下面代码刷新即可,不出来字体就清除缓存 font-family: 'qz'; 第二种 ,如果存oss里记得跨添加域访问CORS规则 不想麻烦就按提示,填*就完事了,最后一样...,定义css并在body中引用,就是这样滴 刷新访问或清除缓存访问即可看到,效果如下 第三种 ,也是最推荐的一种,我们可以把字体文件存在github,通过jsdelivr的cdn全球加速,简单,
从上面可以看出 CDN 两大特点: 就近取材 内容缓存 缓存引发的问题 不知道大家有没有想到这个问题:如果 CDN 做了缓存,那么,就算我发布新版本,CDN 缓存还是旧的文件,用户依然只能看到旧页面。...只要文件内容一变,那么 contenthash 值就会变,会在 CDN 上新上传一份 css 或 js 文件,而且 index.html 引用的 css 和 js 资源路径也会跟着变,这就解决了每次发布都不能覆盖上个版本的问题了...还会有人问:“如果我的文件改一个字,就发布一次,每次发布都会发一个新 js 或 css 文件,那 CDN 上的资源不是会变得越来越多?”。...这里要注意:不能把 index.html 打包成 [contenthash].html,因为 Github 要求我们分支上的 html 文件只能叫 index.html,而同名文件放在 CDN 上又会有上面缓存不更新的问题...同时,你还可以选择 节点缓存 和 浏览器缓存: 浏览器缓存 好处是可以节省 CDN 上的流量(对,流量也是要钱的,虽然不多),坏处也很明显,万万万一你要真的进行内容刷新,那么用户访问的有可能还是以前的版本
和ngrok去调试,在这里为了照顾新手我是直接引用的sw 处理静态缓存,首先定义需要缓存的路径,以及需要缓存的静态文件的列表。...更新静态资源,缓存的资源会跟随着版本的更新会过期的,所以会根据缓存的字符串名称清除旧缓存。...旧的 SW 脚本不在控制着页面之后会被停止,也就是会进入 Redundant 期。...这个时候肯定会有同学在想,如果内容更新了,那么页面展示的内容是新内容呢还是旧内容呢?下面我们操作一下,打开 index.html 文件,我们在 body 中添加一个 p 标签 ,然后回到页面刷新。...这说明了,我们拿到的数据还是从 Cache Storage 中获取到的,Cache Storage中的内容并没有更新,强制刷新也不行哦,那么我们怎么才能让我刚刚添加的那个 p 标签显示出来呢。
可以将CDN简单理解为对象存储对应的缓存层。 CDN和OSS 现在就可以回答上面的提问,对用户来说,这张图片数据存在了对象存储那,当有需要的时候,会从CDN那被读出来。...除了上面提到的cdn上拿不到数据会回源站外,还有cdn上的缓存过期失效了也会导致回源站。 另外,就算有缓存,且缓存不过期,也可以通过cdn提供的开放接口来触发主动回源,但这个我们比较少机会能接触到。...意思是未命中缓存导致CDN回源查oss,拿到数据后再返回。 那此时CDN里肯定是有这张图片的缓存了。我们可以试着再执行一次 GET 方法获取图片。...还有就是曾经有这条数据但后来过期失效了,对于热点数据,可以适当提高一下cdn数据的缓存时间。 1667344813600 什么情况下不应该使用CDN?...总结 • 对于文本类数据我们习惯用mysql做存储,redis做缓存。但属于文件类数据,比如视频图片,则需要使用oss等做对象存储,cdn做缓存。
面试官点点头,接着问:"那我在地址栏输入 URL 回车,和按 F5 刷新,这两种情况下,缓存策略生效有什么区别?" 这一问,把很多只背了 HTTP 头定义的候选人问住了。..."怀疑"模式:按 F5 刷新 / 点击刷新按钮 当你按下 F5 时,浏览器的潜台词是:"我不信本地缓存是新的,我要去服务器问问。" 这时候,浏览器会无视强缓存(Cache-Control)的有效期。...作为开发者,我们的终极目标是:既要缓存时间够长(省流量),又要更新够快(不发版事故)。 既然 F5 和回车的行为不可控,我们就得从文件名下手。...浏览器一看:"哟,新文件,没缓存过",立刻请求新的。 这样,用户根本不需要关心是回车还是 F5,永远能看到最新代码,同时享受最强缓存。 面试怎么答?...所以在实际项目中,我们不能依赖用户的刷新行为,而是应该用 HTML 协商缓存 + 静态资源 Hash 文件名 + 强缓存 的组合拳,来保证更新和性能的平衡。
/CSS为静态文件?...(推荐) 当有新文章或页面的发布或更新时清除之前的缓存文件。 首页额外检查。 (极少数情况下会停止对首页的缓存) (推荐) 当某页面有新评论时,只刷新该页面的缓存。...腾讯CDN提供了HTTPS免费额度,腾讯云CDN的回源IP直接设置为你的主机即可。...类型 内容 刷新时间 全部 all 0天 文件类型 .woff2;.woff;.css;.js;.png;.ttf;.eot;.svg 60天 文件类型 .xml;.gz;.php 0天 不缓存php...腾讯云工程师:564是由于源站响应时间高于cdn的默认超时时间10s导致的 因此,这三个选项和564错误还是没有关系的。那么564错误到底怎么解决呢?