鉴于
- CDN是一件好事,因为它们可以为靠近客户端的资源提供服务,客户端可以缓存它们,并且您可以减少自己服务器上的负载。
- 在最新的浏览器中,由于子资源完整性(SRI)的原因,从第三方服务器加载资源不会降低安全性。
- CDN在某些国家/地区可能已关闭或受阻,并且在离线开发1时不可用。
我认为使用CDN很有必要,但也要为它们不可用做准备。这篇博客文章很好地介绍了提供备用功能的不同方法。如果看一下Basic示例,您会发现它已经包含了很多样板代码,仅可为jQuery和Bootstrap提供后备,而受青睐的解决方案建议使用Fallback.js,在过去的一年中似乎几乎没有保留。 。同样,与该主题最相关的SO问题仅涉及为jQuery提供后备功能。
但是,在大多数实际项目中,我希望有5个或更多的js / css资源,所以我觉得您不必重复一些混乱的样板即可为所有这些提供后备。此外,每次添加或更新资源时,您现在都必须
- 更新CDN链接
- 通过手动下载或更改npm / bower配置中的版本来更新本地后备副本
- 更新链接到后备
- 更新SRI哈希
而在理想世界中,我希望在一个配置文件中添加/更新资源,并让所有其他步骤自动执行(然后运行测试以查看更新是否破坏了任何内容)。
是否已经建立工作流程来实现这一目标?
还是CDN尤其是SRI太新了?
还是大多数人根本不愿意为CDN资源提供后备资源?
1.尽管您可以拥有一个不依赖CDN的开发版本,但是我也认为这是一种后备形式,因为它也需要维护。
Fallback.js
维护,因为它已经可以完美运行了? 如果软件已经运行,则不必每5分钟更改一次。