Когда Rails компилирует CoffeeScript?

17

Когда Rails компилирует ресурсы Coffeescript на JavaScript? Это происходит по запросу или при запуске?

Теги:
coffeescript
ruby-on-rails-3

1 ответ

22
Лучший ответ

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
  • 2
    Это все о производстве env, верно? Как насчет разработки env?
  • 0
    Обновлено с учетом среды разработки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню