Rails 3.1由于资产开发模式很慢,该怎么办?
在添加Sprockets后,Rails在开发模式下加载速度非常慢,我应该如何加速?
看看https://github.com/wavii/rails-dev-tweaks 。
Rails在开发模式下运行每个Sprockets资源请求上的所有to_prepare钩子。 这包括自动(重新)加载你的代码,以及各种gem偷偷摸摸的工作。
rails-dev-tweaks禁止在任何资产请求(和其他一些 – 阅读其自述文件的第一部分 )上准备和重新加载。 加快您的开发环境,为任何体面大小的项目巨额。 这也可以configuration为你喜欢的任何额外的请求
在提到关于这个问题的几个Google结果之后,我已经确定了DNS问题所在的位置。
问题是:Rails正在做反向查找。 所以,如果你从一个直接的IP请求,或者只有机器的/ etc / hosts中的主机名与浏览器,我经常是因为我把所有的东西扔在一起的虚拟机,而且这个IP不能快速解决在开发服务器中,Rails将等待每个请求。
故事的道德启示? 在dev服务器(即运行rails的服务器)上为每个与您的开发相关的IP添加一个/ etc / hosts条目。 这就意味着要开发一个虚拟/虚拟/ etc / dev的服务器上的主机条目,你期望在railstesting中涉及到这个IP,因为当它logging请求时,它会做反向查询,你想要快速。
奇怪的解决scheme,为我工作。 我通常导航到我的应用程序的开发通过myapp.local:3000,这是在我的主机文件中设置。 资产加载速度慢得可笑。
通过导航到我的应用程序通过127.0.0.1:3000,资产加载很快,进一步,使用本地IP一次后,我可以导航使用myapp.local:3000和资产加载速度超快。
希望我能告诉你为什么,但我希望它能帮助那里的人。 我在OSX 10.7.5上。
你看过它在生产中有多快? 开发环境的行为与testing和生产行为不同,并因此而获得更多的性能命中。 没有更多的信息,我们无法为您提供更好的答案。
另外请查看Turbo Sprokets – https://github.com/ndbroadbent/turbo-sprockets-rails3
看起来很有希望