Конвейер не сжимает javascripts в application.js
У меня есть два вопроса.
-
Я принимаю неверное предположение, что все мои javascripts должны быть сжаты в application.js по умолчанию в rails 3.1 даже в режиме разработки?
-
Если нет, то почему мой тег имеет все 30 моих javascripts и берет forver для загрузки?
Мой файл application.js выглядит следующим образом:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
И в браузере он отображается как:
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
;
Пока все мои другие javascripts отображаются полностью.
Спасибо, куча!
Ответы
Ответ 1
Если это новый режим отладки приложений Rails, по умолчанию включен. Режим отладки говорит Sprockets записывать теги для каждого файла в источник HTML. Это делается для облегчения отладки исходного файла.
Если вы хотите иметь только один файл в режиме разработки, перейдите в свой development.rb и установите:
config.assets.debug = false
Это даст вам один файл для каждого манифеста.
Сжатие по умолчанию не включено для разработки, но если вы тоже этого хотели, установите:
config.assets.compress = true
И вам нужно будет переместить параметры компрессора из production.rb в application.rb, чтобы они были доступны для среды разработки.
Я отключу отладку в режиме dev, но я не использую сжатие из-за дополнительного времени, которое требуется для обработки файлов.