Хорошо, я понял, как заставить это работать, но это не чисто. По какой-то причине deploy:assets:precompile
запускается непосредственно перед deploy:create_symlink
, а не после. В результате каталог current
на сервере еще не указывает на новый код во время компиляции ресурсов, поэтому они компилируются только для предыдущего развертывания. Вот почему мои ресурсы не обновлялись, если я не развернул их дважды.
Я применил быстрое исправление, добавив следующее:
before "deploy:assets:precompile", "deploy:create_symlink"
Это инициирует создание символической ссылки непосредственно перед прекомпиляцией, чтобы изменения актива были подобраны. В результате символическая ссылка создается дважды, потому что существующее поведение также все еще выполняется. Это работает, но кажется грязным.
Я действительно не уверен, почему это проблема в первую очередь, и я не понимаю, почему никто другой, кажется, не имеет этой проблемы; мой deploy.rb
довольно резок, ничего особенного не происходит. Единственное, о чем я могу думать, это то, что load "deploy/assets"
не в нужном месте в файле. Я просто предположил, что это пошло наверх, и я не знаю, влияет ли это на порядок исполнения.
Будем весьма благодарны за любые предложения, как правильно исправить это!