Странный конфликт с развертыванием проекта django с django_assets

Недавно я попытался добавить webassets в свой проект django. Все идет без проблем в разработке (с django runserver). Все js и css начинают сжиматься, когда я устанавливаю для параметра ASSETS_DEBUG значение False.

Проблема возникает, когда я просматриваю свой проект из развернутой структуры (apache + mod_wsgi). Исключение вызывается из django_assets, что дает мне следующее сообщение:

Ошибка регистрации: другой пакет уже зарегистрирован как "js_all": ],contents=('js/jquery-1.6.3.min.js', 'js/jquery-ui-1.8.16.custom.min.js', ' js/jquery-ui-timepicker-addon.js», «js/ui.datepicker-es.js», «js/tiny_mce/tiny_mce.js», «js/tiny_mce_config.js», «js/public.js» )>

Не могу найти причину этого исключения, не брошенного в разработку. Ниже приведен файл моих активов:

from django_assets import Bundle, register
js = Bundle(
    'js/jquery-1.6.3.min.js',
    'js/jquery-ui-1.8.16.custom.min.js',
    'js/jquery-ui-timepicker-addon.js',
    'js/ui.datepicker-es.js',
    'js/tiny_mce/tiny_mce.js',
    'js/tiny_mce_config.js',
    'js/public.js',
    filters='yui_js',
    output='js/gen/packed.js'
    )
register('js_all', js)

css = Bundle(
    'css/smoothness/jquery-ui-1.8.16.custom.css',
    'css/jquery_ui_fixes.css',
    'css/public.css',
    'css/forms.css',
    filters='yui_css',
    output='css/gen/packed.css',
    )
register('css_all', css)

Используемая версия Webassets — это версия в репозитории pip: version = (0, 6)

Я надеюсь, что кто-то сможет мне помочь.

Исаак


person user989501    schedule 11.01.2012    source источник
comment
вы уверены, что это не импортируется дважды? Попробуйте закомментировать register('js_all', js) и посмотрите, появится ли вторая ошибка для 'css_all'   -  person Ted    schedule 12.01.2012


Ответы (1)


Из-за некоторых глупостей с Django ваш файл settings.py может быть импортирован дважды. Таким образом регистрация будет происходить дважды. Читать:

http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html

за все ужасные подробности этого вопроса.

person Graham Dumpleton    schedule 11.01.2012
comment
Возможно, было бы неплохо добавить к вашему ответу, что из-за этой глупости вам придется поймать RegisterError с помощью блока try exclude вокруг вызова регистрации. - person jaapz; 28.08.2013
comment
В последних версиях Django этот двойной импорт не должен быть проблемой, если вы сами не запускаете его каким-либо образом. - person Graham Dumpleton; 29.08.2013