41

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

4

5 回答 5

51

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

Rails 在开发模式下对每个 Sprockets 资产请求运行所有 to_prepare 钩子。这包括诸如自动(重新)加载代码之类的事情,以及各种 gems 也可以在那里偷偷工作。

rails-dev-tweaks 在任何资产请求上禁用 to_prepare 和重新加载(以及其他一些 -阅读其 README 的第一部分)。对于任何规模合适的项目,都可以大大加快您的开发环境。对于您喜欢的任何其他请求,它也可以配置为执行此操作

于 2011-09-24T01:03:05.670 回答
5

在参考了几个关于这个问题的谷歌结果之后,我已经确定了 DNS 问题所在的位置。

问题是:Rails 正在做反向查找。因此,如果您从直接 IP 或仅具有浏览器的机器的 /etc/hosts 中的主机名请求,我经常这样做,因为我将所有东西都放在一起运行的 VM 中,并且该 IP 无法快速解析在开发服务器中,Rails 将等待每个请求。

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

于 2013-01-21T19:14:29.817 回答
1

Weird solution that worked for me. I normally navigated to my app on development via myapp.local:3000, which was set in my hosts file. Assets were loading ridiculously slow.

By navigating to my app via 127.0.0.1:3000, the assets loaded quickly, and further, after using the local ip one time, I could then navigation using myapp.local:3000 and the assets were loading super fast now.

Wish I could tell you why, but I hope it helps someone out there. I'm on OSX 10.7.5.

于 2013-08-12T17:31:58.267 回答
0

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

于 2011-09-23T07:27:13.233 回答
0

还可以在这里查看 Turbo Sprokets - https://github.com/ndbroadbent/turbo-sprockets-rails3

看起来很有希望。

于 2012-10-23T13:55:41.457 回答