如何知道资产:在Rails上完成预编译?

时间:2015-08-09 11:55:13

标签: ruby-on-rails

我想知道资产:预编译是否完成了rake。 目前,我检查是否存在public/assets

Rails.application.assets.find_asset('application.css')

find_asset在这种情况下不起作用。

1 个答案:

答案 0 :(得分:1)

您可以subelsky使用this task来检查资产是否已预先编译:

namespace :assets do
  task :check do
    root_dir = File.join(File.dirname(__FILE__),"..","..")
    assets_last_modified_at  = Dir["#{root_dir}/app/assets/**/**"].map { |p| File.mtime(p) }.sort.last
    assets_last_compiled_at =  Dir["#{root_dir}/public/assets/**/**"].map { |p| File.mtime(p) }.sort.last

    if assets_last_modified_at > assets_last_compiled_at
      fail "Assets need to precompiled; last asset modified at #{assets_last_modified_at}"
    end
  end
end

然后您可以将此任务添加到任务的依赖项中:

task :mine => 'assets:check'
  ...
end