2011-08-06 45 views
7

我正在试验Rails 3.1,它使用Sprokets 2.0作为其“资产管道”,并尝试在生产环境中使用CDN托管的库,但本地托管文件为发展。在Rails 3.1中使用CDN托管的JS库进行生产

即,在发展: jquery.js被加载的application.js

的一部分,但在生产中: http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js代替加载。

奖金问题:为什么我不应该这样做?

+0

我在做同样的在我的项目:) –

+0

+1这样做是正确的。我实际上在六个月前创建了一个项目,通过在目标文件中放置一个'use_remote'调用来支持这个项目。这允许自动依赖解决方案,同时利用CDN托管的脚本。你可以检查项目的一些想法 - javascripto.org。自从引入资产管道以来,我已经停止了这个项目的工作,但认为这是相关的。希望资产管道能够支持这样的事情。我也想看到像我的包的概念。 –

+1

您是如何让Rails 3.1在开发中使用本地捆绑的jQuery以及在生产环境中托管CDN的?我在3.0中这样做,但我不知道如何在资产管道启用时执行此操作。 – Roman

回答

1

没有理由不这样做。 Google的CDN的重点在于,当许多不同的网站使用同一个CDN文件时,浏览器或其他地方可能会缓存这些文件。整个流程的重点是做同样的事情 - 压缩包+远程头文件。

不使用CDN的唯一原因是CDN距离很远,您访问者使用的网站也很少使用CDN。

在我的情况下,我在新西兰,很少有任何本地网站使用CDN。这对访问我们网站的人员(在浏览另一个本地网站时没有人获得该文件)增加了第一次要求的惩罚。我选择将jquery卷入产品包中以避免请求和加载所花费的时间(距离新西兰大约700mS)。

YMMV!

相关问题