我已经在互联网上阅读过几十篇关于此的帖子,但主要是针对Rails 3.
出于某种原因,在开发过程中加载总共34个资产的页面需要35秒。
我做了以下事情:
config.assets.debug = false
,但这只会将其缩短为30秒,我正在开发使用vagrant(https://github.com/rails/rails-dev-box)的ubuntu盒子。主机是最快的全新MacBook Pro。
我几乎要完全抛弃资产管道并自己编译资产。每次我需要重新加载页面时,我都不能等待35秒。
对此有任何帮助表示赞赏。
development.rb:
MyProject::Application.configure do
config.cache_classes = false
config.eager_load = false
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_mailer.raise_delivery_errors = false
config.active_support.deprecation = :log
config.active_record.migration_error = :page_load
config.assets.debug = false
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
end
修改
我认为问题是VM。我使用自制软件在我的Mac上安装了ruby,并使用确切的配置运行相同的项目,并在1秒内加载。我不确定是什么问题。
答案 0 :(得分:3)
问题可能在于Vagrant框上的shared_folder,可以使用rsync修复:
brew install rsync
type: "rsync"
添加到您的synced_folder:config.vm.synced_folder "[path to host folder]", "[path to guest folder]", type: "rsync"
我遇到了20-25秒的页面加载时间,一旦我添加了rsync,我的页面就会在一秒钟内加载。由于shared_folder默认只指向您的代码,因此每次加载页面时,它必须将这些文件加载到VM。
答案 1 :(得分:0)
添加gem 'rack-mini-profiler'
或更不容易使用的gem 'ruby-prof'
有助于找到渲染速度慢的内容
我有大约50个重js | css文件,它在开发环境中呈现得相当快,所以资产管道本身的问题核心不太可能