迫于 BootCDN 的不稳定,分享一个自己的备用 CDN 方案

2019-03-22 15:25:20 +08:00
 mscststs

今日欣闻 BootCDN 又炸了,群友有个博客没法打开,于是瞅了一眼,发现 BootCDN 只是做了一个 301 重定向,重定向到了 cdnjs.com 的首页( http),所以根本没能弥补任何的问题。

言归正传,其实实现方法很简单,以下代码都在 head 引入


    <!-- axios -->
    <script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>
    <!-- Vue -->
    <script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script>
    <!-- VueRouter -->
    <script src="https://cdn.bootcss.com/vue-router/3.0.2/vue-router.min.js"></script>
	
    <script>
      /* Catch CDN Failed  */
      /* Vue */
      window.Vue || document.write('<script src="https://cdn.jsdelivr.net/npm/vue@2.5.18/dist/vue.min.js"><\/script>')
      /* axios */
      window.axios || document.write('<script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"><\/script>')
      /* VueRouter */
      window.VueRouter || document.write('<script src="https://cdn.jsdelivr.net/npm/vue-router@3.0.2/dist/vue-router.min.js"><\/script>')
      
    </script>

CSS 的话只能用 onerror 事件然后自己插 link 标签来解决

当然了,各位先忽略版本不一致的问题。

实际上这个方法是有效的,毕竟我自己的几个项目就用的这个方法,今天能够正常打开。

某种意义上最好的办法当然是自建 CDN 或者找一个比较靠谱的 CDN。

3673 次点击
所在节点    CDN
3 条回复
cydian
2019-03-24 01:28:01 +08:00
我没搞懂。
你既然有备用的,为什么直接用备用的?
mscststs
2019-03-24 02:24:34 +08:00
@cydian 速度……以及一些其他原因,毕竟 jsdelivr 也有过黑历史什么的。

至少只是提供一个思路,换成 360、cloudflare 也是一样的
kennylam777
2019-04-10 21:23:02 +08:00
這點事就自建 CDN 也太誇張了吧, 自己 host 就好, 加 Cache-Control 控制 client side 的緩存時間, 甚或是在 server side 弄一份 cache, 或者在自己網站的 CDN 留一份也可以, 起碼是共同進退

不過在當前的網絡環境, 有備無患

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547441

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX