【发布时间】:2012-03-28 00:09:37
【问题描述】:
我使用 rails new demo 在 Rails 3.2.2 中创建了一个基本的演示应用程序。然后,我添加了一个控制器,其中包含一个显示视图的方法。当我刷新时,平均需要 20 多秒来呈现页面。这显然使开发变得不可能,所以我试图弄清楚为什么以及如何解决这个问题。
我应该提一下,我使用的是 4GB RAM 和 SSD 驱动器的 Macbook Air 2011,所以我认为我的硬件与问题无关。
运行 OSX Lion、Rails 3.2.2 和 Ruby 1.9.3。通过 WEBrick 在本地运行
更新
我所做的唯一更改是运行rails generator Say hello goodbye。
然后我修改了hello.html.erb 说 Hello World!
这是我的 gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
输入rails server启动服务器
更新 2
在终端窗口中注意到了这个奇怪的现象。从开始 GET 到第一个资产上的 GET 需要 8 秒。
Started GET "/say/hello" for 127.0.0.1 at 2012-03-10 22:49:12 -0700
Processing by SayController#hello as HTML
Rendered say/hello.html.erb within layouts/application (0.1ms)
Completed 200 OK in 5ms (Views: 5.3ms | ActiveRecord: 0.0ms)
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-03-10 22:49:20 -0700
Served asset /application.css - 200 OK (0ms)
然后再等待 4 秒用于下一个资产..
Started GET "/assets/say.css?body=1" for 127.0.0.1 at 2012-03-10 22:49:24 -0700
Served asset /say.css - 200 OK (0ms)
更新 3.1
我已将问题追溯到 WEBrick。我安装并使用了thin,我的通话速度和预期的一样快。万一 WEBrick 问题是更大问题的征兆,追踪问题可能仍然是件好事。
【问题讨论】:
-
没有理由发生这种情况。但是如果没有更多信息,这是不可能调试的。可能是您添加的代码、您的 Gemfile 以及您用来启动应用程序的方法。
-
已更新。我真的什么都没做。我能看到的唯一不寻常的事情是,当我运行 rake 时,它说我的 JavaScript 运行时是 Node.js (V8)
-
日志中有什么奇怪的东西吗(
log/development.log)?你有任何奇怪的防火墙/互联网设置吗?没有理由这么慢,甚至应用启动也不应该是 20 秒。 -
看到一些非常奇怪的时间点......更新了。
-
没有我能想到的防火墙/互联网/代理设置(因为我没有改变任何东西),这都是本地的......是的,我有点想这是规范..我无法想象有很多人在这些条件下发展:D
标签: ruby-on-rails ruby-on-rails-3