服务资产的发展非常缓慢

时间:2013-04-04 10:56:39

标签: ruby-on-rails-3 google-chrome asset-pipeline assets sprockets

我有一个标准的rails 3 webapp,带有默认的资产管道。突然之间,资产需要很长时间才能加载(我的页面加载时间大约为1-2秒到1分钟)。服务器响应时间(/ home)是正常的,但是一些.css和.js文件等待很长时间(最多45秒)。花费这么长时间的少数资产是由宝石提供的资产(例如:modernizr-rails/vendor/assets/javascripts/modernizr.js

例如,对于modernizr.js?body=1

接头:

Request URL:http://dev.sharewizz.com:3000/assets/modernizr.js?body=1
Request Method:GET
Status Code:304 Not Modified

统计:

DNS Lookup  5.00 s
Connecting  20.07 s
Sending     0
Waiting     10 ms
Receiving   3 ms

链轮有问题吗?我怎么知道什么是错的?

注意:所有其他浏览器的行为相同。 编辑:实际上问题只有chrome ,甚至不是safari。 我试图在端口3000和端口80上使用rails s启动我的服务器(没有更改)

如果我访问http://localhost:3000/assets/modernizr.js?body=1,大部分时间都是即时的,有时会等待很长时间。

3 个答案:

答案 0 :(得分:8)

另一种选择 - 硬盘驱动器对于日志来说速度不够快,只是在我的开发电脑上碰到这个(突然)。尝试将其设置为 config / development.rb

# Expands the lines which load the assets
config.assets.debug = false #true

如果您拥有大量资产,每个资源都会花时间写入开发日志,总计最多可累计几分钟。

答案 1 :(得分:3)

Chrome中存在一个问题,浏览器尝试dns请求并等待超时(如果您将鼠标悬停在彩色时间轴上,则可以在开发人员工具/网络选项卡中看到,等待(30000ms或更高),接收(4毫秒)。

如果你正在这样的东西:在hostfile中127.0.0.1 localhost.mysite.com,并在浏览器中访问http://localhost.mysite.com,你可能会尝试在端口80上使用localhost访问它:

  • 使用rvmsudo rails server -p 80
  • 启动rails
  • 访问Chrome中的http://localhost

这可能会解决问题。

答案 2 :(得分:0)

预编译您的资产并为开发环境启用资产管道。但是,如果不重新启动服务器,这可能无法加载您在源代码中所做的更改。