Если файлов нет, Rails создаст их. Вы можете скопировать старые кэшированные активы в новый каталог, прежде чем запускать свой код Rails, но я не верю, что capistrano умнее о том, какие файлы были изменены, поэтому вы не будете знать, когда это сделать.
Если вы хотите, чтобы именно то, что вы описали, я мог бы md5sum старые и новые js/css-каталоги и искать разницу. Если он есть, вам нужно строить с нуля, если его нет, вы можете скопировать старые файлы.
В качестве альтернативы, если все, о чем вы заботитесь, это память, которую вы можете создать активы перед запуском серверов. Что-то вроде:
class AssetCache
include ActionView::Helpers::TagHelper
include ActionView::Helpers::AssetTagHelper
APPLICATION_JAVASCRIPTS = %w{ mootools mycustom admin }
def pre_cache
javascript_include_tag JAVASCRIPT_ASSETS,
:cache => 'cache/app.js'
end
end
И в кепке, прежде чем начать Rails демоны запускаются script/runner -e production AssetCache.new.pre_cache
для заполнения файлов. В своих макетах просто используйте AssetCache::APPLICATION_JAVASCRIPTS
вместо вашего встроенного списка файлов. Промыть, повторить и стирать стили. Демоны Rails будут видеть существующие кэши, а не зацикливать вашу память.
Если вы находитесь на нескольких серверах, вам, вероятно, придется копировать активы, не изменяя их временные метки.
Удачи вам!