2014-03-04 32 views
12

每当我在开发中对SASS进行更改时,加载我的application.css时,我会获得20s +的加载时间。剖析开发中的缓慢资产

我读过一些其他问题,并试图:

  • 设置config.assets.debug = false
  • 改变了进口,并要求(我用SASS变量)
  • 使用Miniprof及其firegraph
  • 使用rails-asset_profile

这是我读:

我一直有这个问题从Rails 3.2现在在4.2。

我在这里疯了。我如何找到这个烂摊子的瓶颈?

我正在寻找一种解决方案,使我能够精确地查明花费的时间,并提出了缩短编译时间的方法。

+1

你有看过浏览器吗?哪个资产是缓慢的? – phoet

+0

@phoet哦,编译好的CSS文件。忘了提到这一点。 –

+0

一个简单的方法是使用'.css.erb'文件并放置语句。只是为了获得任何参考点 – phoet

回答

0

有一个叫做quiet_assets的gem压缩了资产负载的记录。在rails 3.x的时代,它大大加速了我的开发模式。让我知道这是否有帮助。

0

请看sprockets来源find method在Sprockets :: Manifest类。您可以将其更改为以下内容:

paths.each do |path| 
    start = Time.now 
    puts "Start #{path}" 
    environment.find_all_linked_assets(path) do |asset| 
    yield asset 
    end 
    puts "Finished: #{Time.now - start}" 
end 

因此,它会打印编译每个资产所需的所有时间。希望它会帮助:)

编辑:这块代码是从master分支。您可以查看和使用

bundle open sprockets 

输出变化后修改目前的sprockets版本:

$ rake assets:precompile 
Start admin.css 
I, Ä2015-11-28T10:45:26.986231 #45492Ü INFO -- : Writing /Users/sky/projects/photo_school/public/assets/admin-0e445dcfdc3bd3029943b7d3621b4156c9838eed229c3628f8c558cbb3ce1a59.css 
Finished: 10.165564 

编辑:改变代码了一下,改变链接(昨天把链接到错误的叉:是匆匆忙忙,在赏金结束前15分钟才发现你的问题:))。我在我的项目中检查了这个代码,它工作正常(项目使用链接版本3.3.3)。

+0

但是这是编译的文件,对不对? –

+0

哦,错过了,对不起。试试这个块:https://github.com/rails/sprockets/blob/master/lib/sprockets/manifest.rb#L120 – hedgesky