2015-08-09 2 views
0

Я хочу знать активы: precompile сделано или нет на рейке. В настоящее время я проверяю наличие public/assets.Как узнать активы: прекомпилировать на Rails?

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

find_asset не работает в этом случае.

+0

Что вы достичь с этим проверить? – EugZol

+0

Я только запускаю свою задачу рейка после активов: прекомпилировать. Я знаю, что могу подключиться с помощью «Rake :: Task ['assets: precompile»]. Но я хочу написать код как независимый. – akm

ответ

1

Вы можете использовать this task по subelsky, чтобы проверить, были прекомпилированы активы:

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 
+0

Большое спасибо! – akm

+0

Добро пожаловать! Подумайте также о повышении моего вопроса, если вам нравится рекомендация :) – EugZol

Смежные вопросы