在开发中直接提供资产(无资产管道)?

时间:2011-11-10 17:50:57

标签: ruby-on-rails-3 performance asset-pipeline

Rails 3.1在开发过程中加载页面非常慢。它通过管道一次一个地处理它们,并且需要太长时间。

是否可以预编译我的资产(我现在没有测试,因此静态文件很好)并且Rails不负责为它们提供服务?这会让事情变得更快吗?

更新:找到解决方案。
Richard Hulse 对这个问题有正确答案。 rake assets:precompile将预先建立资产,以便直接提供资产,而无需资产管道。

但是 Frexuz的答案解决了我一直在加载缓慢的问题。加载Rails-dev-tweaks gem会使页面加载显着加快。

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题!由于资产的原因,加载页面可能需要2-4秒。

看看这里(宝石):Rails 3.1 is very slow in development-mode because of assets, what to do?

这使得服务资产几乎是即时的(服务器控制台说每个资产1毫秒),正常使用资产管道。

答案 1 :(得分:3)

是。

您可以运行预编译任务(在3.1.1中)并且它将正常工作 - 预编译任务将为您提供没有指纹的资产以及您在开发模式下所需的资产。 (在开发模式下不添加指纹)。

请注意,您不会将这些提交给源代码控制。

更令人担忧的是缓慢。我的清单中有4个样式表和15个javascript文件,第一次请求时速度有点慢。

访问资产时,您在日志中看到了什么?您应该能够看到它们在第一次命中时被编译,并且每个后续请求都应该是304未修改的。

另外,dev的配置设置是否与资产管道指南中的配置相匹配?如果您使用大量文件在开发模式下进行压缩,这可能会导致速度缓慢。