2015-02-12 3 views
1

Я прочитал документы, но, похоже, не понимаю, нужно ли использовать rake-активы: прекомпилировать локально каждый раз, когда вы меняете файл scss или любые другие активы? Нет ли автоматического способа сделать это? Одна из вещей, которые я заметил, это то, что я забываю запускать ее иногда, и мои изменения героя не появляются. Должен быть способ настроить его автоматически в рельсах?Вам всегда нужно запускать рейк-активы: прекомпилировать локально?

Если изменить

config.assets.compile = ложь

истинно, будет делать это? Недостаток этого?

ответ

0

rake assets: precompile должен запускаться для производственной среды. Не нужно запускать команду для среды разработки. Команда используется для сбора всех файлов в один и поэтому будет легче работать в производстве. В процессе разработки стилей они хотят в папке с ресурсами. После запуска команды стили помещаются в общую папку.

+0

Вам нужно делать это каждый раз или вы можете его настроить? – CodeCrack

+0

Для разработки не требуется запускать их при каждом изменении. В производстве, по моему опыту, в случае необходимости необходимо предварительно скомпилированные файлы с новыми изменениями. – betomoretti

2

Вам не нужно предварительно скомпоновать свои активы для Heroku, чтобы обслуживать их. Heroku автоматически перекомпилирует ваши активы, если вы уже не предварительно скомпилировали активы локально. Прочтите this heroku doc относительно конвейера активов в Rails 3 (даже если вы уже используете Rails 4). Затем прочитайте this doc относительно конвейера активов в Rails 4 на герою.

Обратите особое внимание на эту часть:

Если государственные/активы/manifest.yml обнаружен в вашем приложении, Heroku будет предположим, что вы обработки компиляции активов самостоятельно и не попытка скомпилировать ваш активы. Rails 4 использует файл с именем public/assets/manifest-.json. В обеих версиях вы можете сгенерировать этот файл, выполнив $ rake assets:precompile локально и проверив результирующие файлы в Git.

+0

Heroku будет предварительно их компилировать один раз, но что, если вы измените их снова .. Я не думаю, что он будет прекомпилировать их и просто использовать старый предварительно скомпилированный файл? – CodeCrack

+1

Он будет прекомпилировать их, если он обнаружит изменение. В противном случае это было бы бесполезно. – michaelmichael

+0

не прекомпилял на heroku для меня .. Мне пришлось вручную запустить rake assets: precompile – CodeCrack

0

Если вы забыли запустить рейк-активы: прекомпиляция Heroku должна делать это автоматически. Одна из причин, по которой это может быть не так, - это если вы проверили свою общую папку на git, а затем во время компиляции Slug Heroku предположит, что вы предварительно скомпилировали свои активы и не сделаете этого для вас.

Настройка config.assets.compile = true может значительно замедлить ваше приложение, поэтому оно используется только в разработке.