由于资产的原因,Rails 3.1在开发模式下非常慢,该怎么办?

时间:2011-09-22 23:44:24

标签: ruby-on-rails ruby-on-rails-3.1 sprockets

在我添加Sprockets后,Rails在开发模式下加载速度非常慢,我该怎么做才能加快它的速度?

5 个答案:

答案 0 :(得分:51)

看看https://github.com/wavii/rails-dev-tweaks

Rails在开发模式下运行每个Sprockets资产请求的所有to_prepare挂钩。这包括自动(重新)加载代码,以及各种宝石偷偷摸摸的工作。

rails-dev-tweaks禁用to_prepare&重新加载任何资产请求(以及其他一些 - 阅读其自述文件的第一部分)。对于任何体面的项目来说,都要大量加快您的开发环境。它还可以配置为您喜欢的任何其他请求执行此操作

答案 1 :(得分:5)

在参考了几个有关此问题的Google搜索结果后,我已经确定了DNS问题所在的位置。

问题是:Rails正在进行反向查找。所以,如果你从直接IP请求,或只在带有浏览器的机器的/ etc / hosts中的主机名,我常常这样做,因为我把所有东西都放在一起VM,并且IP没有快速解决的问题在开发服务器中,Rails将等待每个请求和每个请求。

故事的道德?在开发服务器(即运行rails的服务器)上为每个与开发相关的IP包含/ etc / hosts条目。这意味着继续为您希望参与rails测试的开发服务器上的每个假/虚拟/等... IP创建一个主机条目,因为当它记录请求和诸如此类的东西时,它将进行反向查找,并且你想要那么快。

答案 2 :(得分:1)

对我有用的奇怪解决方案。我通常通过myapp.local:3000导航到我开发的应用程序,这是在我的主机文件中设置的。资产装载速度非常慢。

通过127.0.0.1:3000导航到我的应用程序,资产加载很快,而且,在使用本地IP一次后,我可以使用myapp.local:3000进行导航,现在资产加载速度非常快。

希望我能告诉你原因,但我希望它可以帮助那些人。我在OSX 10.7.5上。

答案 3 :(得分:0)

你看过它在生产中的运行速度有多快?开发环境的行为与测试和生产不同,因此具有更高的性能。没有更多信息,我们无法为您提供更好的答案。

答案 4 :(得分:0)

另请查看Turbo Sprokets - https://github.com/ndbroadbent/turbo-sprockets-rails3

看起来很有希望。