文章图片存储在GitHub,网速不佳的朋友,请看《CDN 使用心得:加速双刃剑》 或者 来我的技术小站 godbmw.com

本文以腾讯云平台的 CDN 服务为例,记录下在个人网站开发和公司项目实战中的对 CDN 使用的心得:便宜没好货。

1. 什么是 CDN?

CDN 的全称是 Content Delivery Network,即内容分发网络。其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

可以简单理解成:CDN 就是一个能让用户以最快速度访问到相应资源的网盘。

2. 如何访问 CDN 资源?

在云平台的控制台开启“对象存储”服务后,开启对应的“加速域名”,此时,针对这个存储桶,就开启了 CDN 加速。

如下图所示,“加速域名”就是 CDN 域名。

在存储桶下可以进行各种文件操作,比如我将友链的图片都放在了/friend文件夹下面:

此时,birdteam.png的 URL 是:https://blog-1255463368.cos.ap-guangzhou.myqcloud.com/friend/birdteam.png;CDN 对应的 URL:https://blog-1255463368.file.myqcloud.com/friend/birdteam.png任何资源都可以用文件路径拼接的方式来获得 URL,进而获得资源

3. 如何在 SPA 应用中使用 CDN?

时下火热的vuejs,reactjs等 SPA 框架以及衍生出来的脚手架,均有利用webpack进行打包操作。最无脑的操作就是将打包后的文件直接扔到服务器上。

然后,用户访问网站的时候,从服务器拉取资源,速度慢到另人发指。除此之外,还得考虑做后端缓存,更是出力不讨好:)

但是,借助 CDN 可以极大缩小用户等待时间,提高访问体验。同时,云平台 CDN 还自带前端缓存,简单方便。

vue-cli搭建的vuejs应用中,可以通过修改/config/index.js中的配置来更改打包后index.html文件中资源的地址。如下图所示,更改build.assetsSubDirectory为存储桶的文件名称,更改 build.assetsPublicPath为 CDN 的域名:

命令行执行npm run build后,打包后的项目文件都放在了/dist/文件下。根据前面的配置,将/dist/static/文件夹直接上传到云平台的对应存储桶的跟目录下即可。

查看网站godbmw.com的源码,可以看到资源都是从 CDN 上获取了。

4. 不要乱用第三方 CDN

在搭建博客之初,因为想节省一些 CDN 资源,所以,一些第三方 JS 库并没有利用npm来进行管理,而是通过第三方 CDN 来引入的。比如博客下方的播放组件Aplayer,评论系统Valine等等。

这样做的好处就是打包体积小了很多(从800+kb降低到了500+kb)。本来以为可以提高用户访问速度,但事实是:免费的 CDN 是不稳定的。ValineCDN 资源的获取,有时候会阻塞 3s,在网络不稳定的移动端,浏览体验非常差。

除了速度不稳定,不通过npm管理的项目难以维护。隔了 2 个月,就忘记用了什么库,只能通过翻代码和查看<script>标签中 CDN 的资源地址来确定。

因此,尽量在项目中使用npm安装第三方库,而不是通过第三方平台的 CDN 服务加载对应的库代码。

5. 写在最后

CDN 的理解和应用都非常简单,没什么深度,只是经验之谈(所以文章结构有点散,请谅解)。

目前,各大平台的 CDN 免费额度对于个人项目甚至是小型商业项目是够用的。例如我的博客打包后才800+kb,而免费额度是10G/月,如果能用光免费额度,那么也说明网站可以盈利了。此时,更应该使用 CDN 来提速。这是一个良性循环。

CDN使用心得:加速双刃剑相关推荐

  1. Google 工程师:为什么 CDN 对移动客户端加速“没有”效果

    王者荣耀是近两年来比较火的手游,不少小伙伴都有玩过.玩这个游戏最怕的不是遇到猪一般的队友,也不是怕遇到神一样的对手.最让我们感到害怕和绝望的是,团战爆发时,而你 460 了.460 是一个玩家常用的词 ...

  2. 基于Nginx构建七牛云CDN静态资源加速

    创建七牛云账号[七牛云] 进入管理控制台创建对象存储 3. 配置nginx[使用nginx rewrite 的重定向功能进行转发到七牛云] server {listen 80;server_name ...

  3. 阿里云CDN和全站加速区别在哪?使用有感

    话说阿里云以及其他服务商都退出CDN服务,所谓CDN众所众知是阶段缓存加速服务,也就是将你的文件缓存到各个节点,以加快网站的访问速度,其他的CDN的确没用过,只用过阿里云的CDN和全站加速,说说的我的 ...

  4. 华为云CDN通过全站加速引领网站性能全面优化

    华为云CDN通过全站加速引领网站性能全面优化 全球58.4%的人口使用社交媒体,人们平均每日使用时间为2小时27分钟(数据来源:Smart Insights,2022年1月),实时.交互和自适应的动态 ...

  5. 阿里云CDN和全站加速的区别

    阿里云CDN可以说是国内稳定性比较好的,各项功能也比较齐全,并且分为了阿里云CDN和全站加速,说说两者的区别 1.阿里云CDN 阿里云CDN和全站加速是分开的,CDN主要提供的是图片的加速.文件下载. ...

  6. CDN对于动态加速是否有效

    CDN对于动态加速是否有效的问题.关于这个问题,一直存在一些分歧,部分人认为有效,部分人认为无效,主要是CDN技术也在更新,而且是比较低调的进行着更新,所以并不是所有人都清楚CDN对动态加速的效果.其 ...

  7. CDN帮助网站加速的方法

    2019独角兽企业重金招聘Python工程师标准>>> CDN 是一个服务器网络,而不是单个服务器,具有多个地理位置.当用户访问一个网站时,信息从最靠近他们的服务器位置被提取出来. ...

  8. axios 注册拦截器 cdn引用_CDN加速原理

    什么是 CDN CDN 全称是(Content Delivery NetWork,即内容分发网络.其目的是通过现有的 Internet 中增加一层新的缓存层,将网站的内容发布到最接近用户的网络 边缘 ...

  9. 动态网站CDN是如何加速的?

    动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站,一般情况下动态网站通过数据库进行架构. 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功 ...

最新文章

  1. 将Session值储存于SQL Server中
  2. PyCharm开启或关闭科学模式
  3. python实现第一个web_使用Python的Flask框架来搭建第一个Web应用程序
  4. python绘制复杂表格_Python3绘制整齐的表格
  5. linux 之静默安装oracle
  6. frame越过另一个frame_Python3.6实现一个简单的文本编辑器
  7. jQuery WEUI
  8. [lammps教程] 合金拉升模拟
  9. 全球及中国电子材料市场需求分析与十四五投资潜力预测报告2021年版
  10. xampp的安装及使用
  11. 国际音标IPA、DJ音标和美国KK音标对照表
  12. 庆祝鸿蒙指的是哪个生肖,12月中头彩,苦难转幸福,3生肖,鸿蒙紫气,运走上坡路,想啥就有啥...
  13. Fresco的使用及圆角
  14. 使用Blend的一些问题
  15. ocr 哪个好 外文_ocr英文识别软件哪个好 好用的ocr英文识别软件推荐
  16. dp交换机命令_思科路由器、交换机命令集
  17. su模型如何画?免费模型库如何下载?草图溜溜之无限获得
  18. ViG核心代码及网络结构图
  19. 永远的美能达,Minolta手动镜头的一些数据
  20. 容大电子秤传称_容大科技Aurora Y1 PC智能秤,称重收银打印一体机

热门文章

  1. 微信小程序原生开发——商品分类左右联动页面(类似于喜茶)
  2. 几种搜索引擎算法研究
  3. 商业数据分析【四】商务智能—Python应用Ⅰ
  4. 5GHz WiFi是骗人的吗?
  5. jvm大局观之内存管理篇: 理解jvm安全点,写出更高效的代码
  6. python百度推广api,查询实时账户情况,展现量、点击量、消费、点击率、点击均价
  7. python - 2048小游戏
  8. 使用TypeScript和NativeScript创建Weather App
  9. Flutter Name source files using lowercase_with_underscores.dart
  10. 计算机主机ip地址题,(完整版)IP地址划分测试题