Github应该用作JavaScript库的CDN吗?
从CDN服务JavaScript库而不是自己的服务器具有巨大的优势。 为您的服务器减less工作量,CDN可能比您的服务器拥有更接近用户的副本,但最重要的是,您的用户的浏览器已经从该URLcaching了这个可能性。 最后一个对每个人来说意味着更less的总体工作,所以显然这是一个全面的胜利,而且我们(开发人员)更依赖CDN服务我们的JavaScript的可能性更大。
但stream行的JavaScript CDN(Google,Microsoft等)只能托pipeless量文件。 对于其他我们可以select自己托pipe它们,或者…使用源控制服务器作为一种CDN。 不太可能Github或类似的地理分布caching文件优化全球服务。 但是,如果这是常见的做法,那么用户的浏览器就有一个很好的caching机会。 从我们的服务器卸载到github的工作只有在Github愿意自愿的情况下才有效。
那么这是常见的做法吗? 我们是否应该鼓励对方这样做? Github介意吗? 他们是否有官方的政策?
如果您关心性能或IE9兼容性,则不应该这样做JavaScript文件。
GitHub不提供具有远期过期标题的“原始”文件。 如果没有跨站点caching的可能性,您将失去使用公共CDN托pipeJavaScript的最大好处。 事实上,使用GitHub作为CDN将比在每个用户首次请求文件(假设您在服务器上正确configurationcaching)之后将文件托pipe在自己的服务器上要慢。
另一个问题是,GitHub不提供具有与文件的实际MIMEtypes相匹配的内容types头的“原始”文件。 在IE9(也许还有其他浏览器/代理/防火墙/等)中,没有使用正确内容types的JavaScript文件在默认情况下被阻止。 您可以在BlockUI演示页面上看到,例如:
链接到GitHub的“原始”文件有一些问题,由戴夫沃德的答案概述。
我build议你看看GitHub页面作为一个选项。
阅读这篇文章:
GitHub作为CDN。 使用GitHub页面cachingJavascript,样式表和Web资产。
最近在github的支持论坛上被问到了 ,官方的回答是没关系。
话虽如此,我同意其他答案:github从来没有真正意义上的CDN,而谷歌和微软有特定的基础设施。
我现在这样做了好几个月,首先有一些担忧,但是如果你的文件没有被公开的问题,这是非常酷的,如果你关心的话,使用缩小版本。
但仍然 – 谷歌和微软统治的jQuery和jQuery模板的空间 – 所以我用它。