Когда Rails компилирует ресурсы Coffeescript на JavaScript? Это происходит по запросу или при запуске?
Когда Rails компилирует CoffeeScript?
Ответ 1
CoffeeScript компилируется в JavaScript по запросу, когда запрос делается на представление, которое включает ресурс CoffeeScript.
Тем не менее, вы можете использовать следующее, чтобы CoffeeScript быстро скомпилировался на JavaScript:
rake assets:precompile
См. ссылку для получения дополнительной информации о конвейере ресурсов Rails.
Из ссылки:
Расширения файлов, используемые для актива, определяют применяется препроцессинг. Когда создается контроллер или эшафот с Gemset по умолчанию Rails, файл CoffeeScript и SCSS файл созданный вместо обычного файла JavaScript и CSS. Пример ранее использовавшийся контроллер назывался "проекты", который app/assets/javascripts/projects.js.coffee и app/assets/stylesheets/projects.css.scss.
Когда эти файлы запрашиваются, они обрабатываются процессорами предоставляемых кофе-камнями и сассовыми рельсами, а затем отправляется обратно для браузера как JavaScript и CSS соответственно.
...
Активы скомпилированы и кэшируются по первому запросу после сервера запускается. Звездочки устанавливают обязательный-revalidate HTTP-заголовок Cache-Control для уменьшения накладных расходов на запрос по последующим запросам - на этих браузер получает ответ 304 (не измененный).
Если какой-либо из файлов манифеста изменился между запросами, сервер отвечает новым скомпилированным файлом.
...
Rails поставляется в комплекте с функцией rake для компиляции манифестов актива и другие файлы в конвейере на диск.
Скомпилированные активы записываются в указанное в config.assets.prefix. По умолчанию используется использование public/assets каталог.
Вы должны использовать эту задачу во время развертывания или локально, если вы это сделаете не имеют права на запись в вашу производственную файловую систему.
Задача грабли:
связка exec rake assets: precompile
UPDATE: Для тех, кто заинтересован в предварительной компиляции активов для разработки, сначала установите переменную RAILS_ENV (от здесь):
RAILS_ENV=development bundle exec rake assets:precompile