Конвейер ресурсов Rails - JS и CoffeeScript

У меня в папке /app/assets/javascripts/ есть файлы .js и .coffee. Файлы .coffee не будут запускаться, пока я не вызову rake assets:precompile, что является проблемой, потому что мне приходится делать rake assets:clean и предварительно компилировать их снова, когда я вношу изменения.

Кроме того, в дополнение к исходным файлам включен предварительно скомпилированный файл .js, что вызывает двойные обработчики событий и все такое хорошее.

Насколько я понимаю, coffeescript должен компилироваться в javascript при каждом запросе, если он не был предварительно скомпилирован, но, похоже, этого не происходит. Я не могу найти загрузку скомпилированного скрипта в Firebug и, по крайней мере, не вижу его поведения.

В моем /config/application.rb настроена следующая строка:

# Enable the asset pipeline
config.assets.enabled = true

Что еще нужно проверить?

Я использую Rails 3.2.3.


person Community    schedule 11.07.2012    source источник


Ответы (1)


Если вы предварительно компилируете на своем локальном компьютере, вы можете зафиксировать эти сгенерированные активы в репозитории и продолжить развертывание. Нет необходимости компилировать их на производственной машине.

Но это создает проблему: теперь, когда вы меняете исходные файлы (coffescript / scss), приложение не принимает изменения, потому что вместо этого оно будет обслуживать предварительно скомпилированные файлы. rake assets: clean удаляет эти предварительно скомпилированные файлы.

из https://stackoverflow.com/a/9335864/643500

То, что я обычно делаю, если хочу, чтобы ресурсы предварительно компилировались на производственном сервере, чтобы получить новые изменения, каждая сборка - это просто очистка ресурсов - разумеется, один раз, если вы не повторно прекомпилируете их.

rake assets:clean

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

rake assets:clean
rake assets:precompile
person Hitham S. AlQadheeb    schedule 11.07.2012