我有一个标准的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
,大部分时间都是即时的,有时会等待很长时间。
答案 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
http://localhost
这可能会解决问题。
答案 2 :(得分:0)
预编译您的资产并为开发环境启用资产管道。但是,如果不重新启动服务器,这可能无法加载您在源代码中所做的更改。