Почему мне нужно дважды развернуть изменения в конвейере активов? - PullRequest
0 голосов
/ 26 февраля 2012

Вот мой (цензурированный) config / deploy.rb: https://gist.github.com/eedf6c976f632c1242cf

По какой-то причине любые изменения в моих ресурсах, будь то файлы CoffeeScript или SASS / SCSS, не появляются в рабочей среде при первом развертывании. При повторном развертывании изменения активов вступают в силу. Это пустая трата времени, и я понятия не имею, почему это происходит. Есть идеи?

Ответы [ 3 ]

1 голос
/ 18 ноября 2013

Я предполагаю, что ваш Capfile выглядит следующим образом:

load 'deploy'
load 'deploy/assets'
load 'config/deploy'

Просто поменяйте местами deploy/assets и config/deploy.Итак:

load 'deploy'
load 'config/deploy'
load 'deploy/assets'
0 голосов
/ 22 октября 2013

Я обнаружил ту же ошибку при использовании этого драгоценного камня.

require "bundler/capistrano"

Когда я использую драгоценный камень ниже, все в порядке ~~

require 'capistrano/ext/multistage'

Примечание: не используйте обадва драгоценных камня, или вы можете встретить шаг развертывания каждого переопределения драгоценных камней.

По моему опыту, U должен развернуть, увидеть процесс и вывод в вашей консоли, определить, что не так.

Возможно, раньше... и после ... команда не может работать.

0 голосов
/ 06 апреля 2012

Хорошо, я понял, как заставить это работать, но это не чисто. По какой-то причине deploy:assets:precompile запускается непосредственно перед deploy:create_symlink, а не после. В результате каталог current на сервере еще не указывает на новый код во время компиляции ресурсов, поэтому они компилируются только для предыдущего развертывания. Вот почему мои ресурсы не обновлялись, если я не развернул их дважды.

Я применил быстрое исправление, добавив следующее:

before "deploy:assets:precompile", "deploy:create_symlink"

Это инициирует создание символической ссылки непосредственно перед прекомпиляцией, чтобы изменения актива были подобраны. В результате символическая ссылка создается дважды, потому что существующее поведение также все еще выполняется. Это работает, но кажется грязным.

Я действительно не уверен, почему это проблема в первую очередь, и я не понимаю, почему никто другой, кажется, не имеет этой проблемы; мой deploy.rb довольно резок, ничего особенного не происходит. Единственное, о чем я могу думать, это то, что load "deploy/assets" не в нужном месте в файле. Я просто предположил, что это пошло наверх, и я не знаю, влияет ли это на порядок исполнения.

Будем весьма благодарны за любые предложения, как правильно исправить это!

...