Wenn die Dateien nicht vorhanden sind, erstellt Rails sie. Sie könnten die alten zwischengespeicherten Assets in das neue Verzeichnis scannen, bevor Sie Ihren Rails-Code starten, aber ich glaube nicht, dass capistrano schlau ist, welche Dateien sich geändert haben, so dass Sie nicht wissen, wann Sie das tun.
Wenn Sie genau das wollen, was Sie beschreiben, würde ich vielleicht md5sum die alten und neuen js/css-Verzeichnisse und suchen Sie nach einem Unterschied. Wenn es einen gibt, müssen Sie von Grund auf neu erstellen, wenn es keinen gibt, können Sie die alten Dateien über scp.
Alternativ, wenn alles, was Sie kümmern sich um den Speicher ist, können Sie die Assets vor dem Starten der Server erstellen. Etwas wie:
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
Und in der Kappe, bevor Sie beginnen Rails Daemons script/runner -e production AssetCache.new.pre_cache
ausführen, um die Dateien zu füllen. Verwenden Sie in Ihren Layouts einfach AssetCache::APPLICATION_JAVASCRIPTS
anstelle Ihrer Inline-Liste von Dateien. Spülen, wiederholen und für Stylesheets waschen. Die Rails-Daemons werden die vorhandenen Caches sehen und nicht Ihr Gedächtnis verlieren.
Wenn Sie auf mehreren Servern arbeiten, müssen Sie die Assets wahrscheinlich replizieren, ohne ihre Zeitstempel zu ändern.
Viel Glück!