Github应该用作javascript库的CDN吗?

Leo*_*opd 94 javascript hosting performance

从CDN而不是您自己的服务器提供javascript库具有巨大的优势.减少服务器的工作量,CDN可能会比服务器更接近用户,但最重要的是用户的浏览器很可能已经从该URL缓存了它.最后一个意味着每个人的总工作量减少,所以它显然是一个全面的胜利,更有可能我们(开发人员)更多地依靠CDN来服务我们的javascript.

但是流行的javascript CDN(谷歌,微软,其他?)只托管少量文件.对于其他人,我们可以选择自己托管它们,或者......使用源代码控制服务器作为一种CDN.这是不太可能Github上或类似的具有全球拥有优化后的文件的地理分布缓存.但是,如果这是常见的做法,那么用户的浏览器就有可能将其缓存.从我们的服务器到github的卸载工作的论点只有在Github愿意自愿这样做的情况下才有效.

那么,这是常见的做法吗?我们应该互相鼓励这样做吗?Github介意吗?他们是否有正式的政策声明?

Dav*_*ard 92

如果您关心性能或IE9兼容性,则不应对JavaScript文件执行此操作.

GitHub不提供具有远期过期标头的"原始"文件.如果没有跨站点缓存的可能性,您将失去使用公共CDN托管JavaScript的最大好处.事实上,在每个用户第一次请求文件后(假设您在服务器上正确配置缓存),使用GitHub作为CDN将比在自己的服务器上简单地托管文件更慢.

另一个问题是GitHub不提供带有与文件实际MIME类型匹配的内容类型标头的"原始"文件.在IE9(可能还有其他浏览器/代理/防火墙/等)中,默认情况下会阻止未使用正确内容类型提供的JavaScript文件.您可以在BlockUI演示页面上看到该操作,例如:

在此输入图像描述

  • 另外......"当您请求这样的原始文件时,您不是直接从文件系统访问该文件!您也会经历多层应用程序代码,这肯定会减慢您的网站速度.请不要这样做相反,创建一个gh-pages分支,并从那里加载它" - http://viatropos.com/blog/github-as-a-cdn/ (9认同)

Chr*_*cob 17

链接到GitHub"原始"文件有一些问题,如Dave Ward的回答所述.

我建议您查看GitHub页面作为选项.

阅读本文:
GitHub作为CDN.使用GitHub页面缓存您的Javascripts,样式表和Web资产.


Mau*_*fer 11

这是最近在github的支持论坛上提出的,官方的答案是没关系.

话虽如此,我同意其他答案:github从来就不是真正意义上的CDN,而谷歌和微软都有特定的基础设施.

  • 澄清.该支持论坛的回复与我在我的回答中链接的文章有关(GitHub Pages为CDN - 而不是GitHub"原始"文件):http://stackoverflow.com/questions/5502540/should-github-be-使用作为一种-CDN换JavaScript的库/ 6032500#6032500). (7认同)

mel*_*yal 10

它适用于原型设计/个人物品,但对于生产我会看:

http://www.cdnjs.com/

http://cachedcommons.org/ - 不再可用

  • 看起来像链接到Github很快就不会是一个选项:https://github.com/blog/1482-heads-up-nosniff-header-support-coming-to-chrome-and-firefox (2认同)