Django 1.4, проверка наличия статического файла, когда DEBUG=True
Я пытаюсь написать код, который проверяет, существует ли статический файл в режиме отладки, и я не могу заставить его работать. Вот что я попробовал в консоли:
>> from django.conf import settings
>>> settings.DEBUG
True
>>> from django.contrib.staticfiles.storage import staticfiles_storage
>>> staticfiles_storage.exists('img/vi_crumbs_bkg.gif')
False
Это не удается, несмотря на vi_crumbs_bkg.gif
существует в статическом каталоге моего приложения. Если я буду ссылаться на это settings.STATIC_ROOT
все работает как положено.
Итак, есть ли способ, которым я могу получить staticfiles_storage.exists
работать в режиме отладки?
(примечание: хотя я знаю, что могу просто запустить collectstatic для правильной работы, я не хотел бы периодически запускать его, чтобы собрать все ресурсы из всех моих приложений, пока я активно развиваюсь)
Заранее спасибо -
1 ответ
Я думаю, что у меня есть решение. Вместо того, чтобы использовать staticfiles_storage.exists
Я собираюсь положиться на статические искатели Джанго, чтобы найти файл для меня. Вот так:
>>> from django.contrib.staticfiles import finders
>>> finders.find('img/vi_crumbs_bkg.gif')
u'/home/myuser/django_project/app_root/static/img/vi_crumbs_bkg.gif'
Это должно быть идеально для моих нужд, так как все, что мне нужно сделать, это проверить, что файл существует в одном каталоге, а не в другом - независимо от того, находится ли он в корне приложения или STATIC_ROOT
не имеет значения.
Надеюсь, это поможет кому-то еще.