Избыточный application.js и css после предварительной компиляции ресурсов в разработке с помощью Rail 3.2.3

Я предварительно компилирую активы перед развертыванием в производственной среде. Рабочий режим работает хорошо, но application.js и application.css используются в разработке. Я пытаюсь rake assets:clean удалить все общедоступные ресурсы, но все равно не работает.

Взгляд в разработке

Избыточные applicationaiton.css и application.js

<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/css/custom-theme/jquery-ui-custom-lastest.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/animate.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/jquery_loadmask/jquery_loadmask.css?body=1" media="screen" rel="stylesheet" type="text/css" />
...
<script src="/assets/tags.js?body=1" type="text/javascript"></script>
<script src="/assets/wedapp.js?body=1" type="text/javascript"></script>
<script src="/assets/works.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

development.rb

config.assets.compress = false
config.assets.debug = true

production.rb

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true  
config.assets.initialize_on_precompile = false  
config.assets.digest = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

Теперь мне нужно установить false в config.assets.debug на development.rb, но я не могу отлаживать активы до предварительной компиляции. Меня это действительно беспокоит.

Какие-либо предложения? Благодарю.

Решение

Попробуйте что-нибудь изменить в файле application.js, я удаляю одну пустую строку и rake assets:clean RAILS_ENV=development, теперь он работает хорошо.


person chiayi    schedule 25.05.2012    source источник
comment
что вы имеете в виду под application.js / css избыточными?   -  person Frederick Cheung    schedule 25.05.2012
comment
Для @FrederickCheung, application.js и application.css не должны загружаться при разработке с config.assets.debug = true.   -  person chiayi    schedule 26.05.2012
comment
Не думайте, что это правда, поскольку разрешено (но не рекомендуется) иметь js / CSS в этих файлах, а не быть чистыми файлами манифеста.   -  person Frederick Cheung    schedule 26.05.2012


Ответы (1)


если вы выполняете предварительную компиляцию локально и хотите сохранить все функции обычного режима разработки, вы можете настроить свои параметры, чтобы разрешить и то, и другое.

В development.rb поместите следующую строку:

config.assets.prefix = "/dev-assets"

Это отменяет все, что установлено в application.rb (обычно "/ assets").

Вам также понадобится это в application.rb:

config.assets.initialize_on_precompile = false

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

(См. Мою полную запись в блоге по теме)

person Richard Hulse    schedule 25.05.2012
comment
привет @Richard Hulse, я настроил конфигурацию, как вы говорите, но страница все еще избыточна от / assets / ... до / dev-assets / ... - person chiayi; 25.05.2012