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

57
4

У меня есть файлы .js и. .coffee папке /app/assets/javascripts/. Файлы .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.

спросил(а) 2012-07-11T07:09:00+04:00 8 лет, 3 месяца назад
1
Решение
81

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

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

от qaru.site/questions/108157/...

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

rake assets:clean

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

rake assets:clean
rake assets:precompile

ответил(а) 2012-07-11T07:26:00+04:00 8 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема