我是本地预编译资产like this RAILS_ENV =生产包exec rake资产:预编译,但它太慢了12小时。我不知道发生了什么!而且我不知道如何开始做某事。 此外,当我在一些样式表文件中进行更改时,这些延迟大约10秒
请有人帮助我,谢谢!
这是我的applications.css.scss
@import "_font-awesome";
@import "jquery.ui.core";
@import "jquery.ui.theme";
@import "dataTables/src/demo_table_jui";
@import "token-input-facebook";
@import "fullcalendar";
@import "fullcalendar.print";
@import "bootstrap";
@import "bootstrap-multiselect";
@import "bootstrap-datetimepicker";
@import "header";
@import "sub_header";
@import "students";
@import "people";
@import "institutions";
我的Gemfile:
gem 'sass-rails', '>= 3.2'
gem 'bootstrap-sass', '~> 3.0.3.0'
其版本:
bootstrap-sass (3.0.3.0)
sass (3.2.12)
sass-rails (3.2.6)
其他信息:
rails 3.2.16
ruby 1.9.3
UPDATE1
UPDATE2
当我禁用资产压缩config.assets.compress = false
时,在生产模式下,我得到结果:
real 5m13.113s
user 5m5.355s
sys 0m5.268s
UPDATE3
得到了改进,但没有解决方案。
:yui
。application.css.scss
以使用Sprockets require指令。现在这是我的application.css.scss file。
预编译的时间是: ~24min
答案 0 :(得分:2)
我解决了这个问题:
问题是我的.scss文件中使用了@extend
句子。
这个问题出现在这个sass版本中。
我想要更多语义html文件(READ HERE以获取更多信息)。
我发现这个问题正在对Sprockets预编译进行内省。使用this精彩教程
解决方案是从我的scss文件中删除所有@extend
个句子,并在我的html中使用普通引导程序。
示例:我必须改变它。
# main.html
<div class='user-information'> ... </div>
# main.scss
.user-information {
@extend .col-md-12
}
由此:
# main.html
<div class='col-md-12'> ... </div>
答案 1 :(得分:1)
检查一下,问题的根源可能类似(即@import很慢):https://gist.github.com/noniq/1746744
我们在最快的i7 Macbook Pro上拥有7分钟的资产编译时间。使用上述hack将其减少到超过2分钟。事实证明我们对指南针的使用很差,更好的解决方案是只在必要时导入它,并且只导入我们在给定的scss部分中需要的指南针的特定部分。即使是导入罗盘的空scss文件也需要大约2秒的时间进行编译,而且由于我们有很多部分内容,因此它会加起来。