gpt4 book ai didi

ruby-on-rails - 如何使 Rails 3 Assets 的预编译速度更快?

转载 作者:数据小太阳 更新时间:2023-10-29 06:28:06 24 4
gpt4 key购买 nike

我有一个正在运行的 Rails 3.2.1 应用程序,我正在通过 Capistrano 使用 deploy/assets 进行部署,它运行 deploy:assets:precompile 任务。

一切正常,除了编译本身真的很慢。我没有那么多 CSS 和 JavaScript(总共大约 8200 行)。

编译 Assets 一般需要1-3分钟左右,占整个部署时间的90%左右。

有什么办法可以优化吗?也许使用不同的程序来编译 Assets 或以某种方式优化它?

我在 Linode 512 1.9.2-p290、Rails 3.2.1 上运行该应用程序,如果有任何相关性,我会使用 therubyracer gem。

最佳答案

这不是让它运行得更快的答案,但就“不同的过程”而言,您可以告诉 Capistrano 仅在您实际对 Assets 进行任何更改时才预编译 Assets 。你会想要做一个像这样的自定义 assets:precompile 任务,它会查看现有代码和新部署代码之间的 git 日志。对我来说,这非常有效,现在我只需要处理更新 Assets 时部署缓慢的问题:

namespace :deploy do
namespace :assets do
task :precompile, :roles => :web, :except => { :no_release => true } do
from = source.next_revision(current_revision)
if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
else
logger.info "Skipping asset pre-compilation because there were no asset changes"
end
end
end
end

来源:http://www.bencurtis.com/2011/12/skipping-asset-compilation-with-capistrano/

关于ruby-on-rails - 如何使 Rails 3 Assets 的预编译速度更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com