Serving assets is very slow in development

半世苍凉 提交于 2020-01-01 06:34:04

问题


I have a standart rails 3 webapp with the default asset pipeline. All of a sudden, the assets took a very long time to load (my page loads went to ~1-2secs to ~1min). The server response time (/home) is normal, but some .css and .js files are pending for very long (up to 45 seconds). The only few assets that take this long are those provided by gems (eg: modernizr-rails/vendor/assets/javascripts/modernizr.js)

For example, for modernizr.js?body=1 :

Headers:

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

Stats:

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

It it a problem with sprockets ? How do I know what's wrong ?

Notes: all other browsers behave the same. Edit: Actually the problem is only with chrome, not even safari. I've tried to launch my server with rails s on port 3000 and on port 80 (no changes)

If I access http://localhost:3000/assets/modernizr.js?body=1, most of the times it is instant, sometimes it wait for very long.


回答1:


Another option - HDD isn't fast enough for logs, just bump into this (suddenly) on my dev pc. Try to set this into config/development.rb:

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

If you have a lot of assets, each one take the time to write into dev log, adding up to several minutes total.




回答2:


There is an issue in chrome where the browser tries a dns request and waits for a timeout (you can see in the developer tools / network tab if you hover on the colored timelines, it says waiting (30000ms or higher), receiving (4ms).

In the case you are soing something like this: 127.0.0.1 localhost.mysite.com in hostfile, and access http://localhost.mysite.com in the browser), you might try to just access it with localhost on port 80:

  • Start rails with rvmsudo rails server -p 80
  • Access http://localhost in chrome

That might solve the issue.




回答3:


Precompile your assets and enable asset pipelining for development env. This may however not load the changes that you make in your source code without restarting the server.



来源:https://stackoverflow.com/questions/15809218/serving-assets-is-very-slow-in-development

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!