Подтвердить что ты не робот

Конвейер не сжимает 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 отображаются полностью.

Спасибо, куча!

4b9b3361

Ответ 1

Если это новый режим отладки приложений Rails, по умолчанию включен. Режим отладки говорит Sprockets записывать теги для каждого файла в источник HTML. Это делается для облегчения отладки исходного файла.

Если вы хотите иметь только один файл в режиме разработки, перейдите в свой development.rb и установите:

config.assets.debug = false

Это даст вам один файл для каждого манифеста.

Сжатие по умолчанию не включено для разработки, но если вы тоже этого хотели, установите:

config.assets.compress = true

И вам нужно будет переместить параметры компрессора из production.rb в application.rb, чтобы они были доступны для среды разработки.

Я отключу отладку в режиме dev, но я не использую сжатие из-за дополнительного времени, которое требуется для обработки файлов.