Что-то не так с ресурсами - каждая локальная страница загружается за 1,5 минуты - PullRequest
1 голос
/ 24 октября 2011

С тех пор как я перешел на active_admin, мой локальный сервер загружает каждую страницу за 1,5 минуты. Я конечно делаю что-то не так.

Development.rb

config.assets.compress = true; config.assets.debug = true; config.assets.compile = false; config.assets.digest = false

Production.rb

config.assets.compress = true; config.assets.compile = true; config.assets.digest = true; config.assets.precompile + = ['active_admin.js', 'active_admin.css']

Обратите внимание, что компиляция верна в работе, потому что активный администратор не работает по-другому.

папка активов

- JavaScripts

----- active_admin.js

----- application.js загружает свои файлы из // = require_tree ./myfolder/

----- моя_папка

---------- 1.js

---------- 2.js

----------....

- таблицы стилей

----- active_admin.css.scss

----- application.css.scss загружает свои файлы из * = require_tree ./myfolder/

----- моя_папка

---------- 1.css.scss

---------- 2.css.scss

----------....

Журналы

Кажется, из-за времени загрузки каждого из файлов ресурсов. Я перечисляю только первое и последнее. Разница во времени между ними составляет 1,5 минуты.

Запущен GET "/assets/jquery.js?body=1" для 127.0.0.1 в 2011-10-24 18: 19: 41 +0530 Обслуживаемый актив /jquery.js - 200 ОК ( 4ms)

Запущен GET "/assets/myfolder/vertical_menu.css?body=1" для 127.0.0.1 в 2011-10-24 18: 21: 04 +0530 Обслуживаемый актив /myfolder/vertical_menu.css - 200 ОК (2 мс)

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Правильные настройки для development.rb:

config.assets.debug = true; 
config.assets.compile = true;

Вы должны удалить линию сжатия, так как это довольно дорогостоящий процесс по времени и может быть причиной того, что он медленный.

Я бы посоветовал взглянуть на руководство по Rails для конвейера ресурсов , так как оно содержит правильные настройки для файлов конфигурации обновленного приложения, а также некоторые советы по развертыванию.

Если вам не нужно отлаживать файлы, вы также можете удалить отладку; это будет обслуживать только один файл вместо многих.

1 голос
/ 13 ноября 2011

Взгляните на https://github.com/wavii/rails-dev-tweaks.

Rails запускает все хуки to_prepare для каждого запроса ресурса Sprockets в режиме разработки.Это включает в себя такие вещи, как автоматическая (повторная) загрузка вашего кода, а также работа с различными драгоценными камнями.(Active Admin - один из этих драгоценных камней)

rails-dev-tweaks отключает to_prepare и перезагружает любой запрос актива (и несколько других - прочитайте первую часть его README).Ускоряет вашу среду разработки на огромную сумму для любого приличного размера проекта.Это также можно настроить для любых дополнительных запросов, которые вам нравятся

0 голосов
/ 24 октября 2011

В вашем production.rb вы можете попробовать добавить

config.assets.compile = false

, а затем запустить

bundle exec rake assets:precompile

Это должно создать application-somemd5.js и application-someothermd5.css в вашей публичнойКаталог / assets, и в производственном режиме эти предварительно скомпилированные ресурсы будут обслуживаться, а не перекомпилироваться конвейером ресурсов при каждой загрузке страницы.

EDIT:

На самом деле, я думаю, что вам, возможно, придется сделатькоманда rake примерно такая:

bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile

Часть RAILS_GROUPS зависит от того, как у вас настроен Gemfile.Вам это понадобится, если у вас есть раздел вроде этого:

group :assets do
  gem 'jquery-rails'
  gem 'sass-rails'
  .... etc
end
...