assets 编译速度太慢,在服务器上编译时差点死机,不知道是不是配置问题,求指导:)
是不是使用 bootstrap 后编译非常慢? 我有一个项目用了 bootstrap-rails 这个 gem,在 production 环境运行 rake assets:precompile 相当慢, 大概要花 8 分钟左右,而且这期间某个 CPU 消耗是 100%,每次部署的时候等得人都快崩溃了。
后来做了一个改动,速度快了很多,运行 rake assets:precompile 只需要 10 多秒的时间了。
修改之前,css 的使用是这样的,application.css 文件内容如下:
/*
*= require app_bootstrap
*= require_tree .
*/
app_bootstrap.css.scss 文件内容如下:
body { padding-top: 60px; }
$baseFontFamily: Verdana, "宋体", Arial, sans-serif !default;
$baseFontSize: 14px !default;
// import original bootstrap
@import "bootstrap";
@import "responsive";
修改处理:把 app_bootstrap.css.scss 的内容直接迁移到 application.css 中,删除 app_bootstrap 引用。 修改之后,application.css 文件内容如下:
/*
*= require_self
*= require bootstrap
*= require responsive
*= require_tree .
*/
body { padding-top: 60px; }
修改之后,运行 rake assets:precompile 就只花 10 多秒了。 原因未来得及深究,我猜大概是 bootstrap 的 sass 替换花了很长时间。 希望对你有帮助。
我每次也是很慢,但不至于死机,死机说明负载过高了。 或许未来可以实现一下根据 Git 文件版本或文件日期来把编译过的文件做个 cache 省下多余的编译耗时