Django 1.4,在DEBUG = True时检查是否存在静态文件

leo*_*leo 5 django django-staticfiles

我正在尝试编写一些代码来检查在DEBUG模式下是否存在静态文件,我无法使其正常工作.这是我在控制台中尝试过的内容:

>> 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
Run Code Online (Sandbox Code Playgroud)

尽管vi_crumbs_bkg.gif存在于我的应用程序的静态目录中,但这仍然失败.如果我符号链接settings.STATIC_ROOT,它都按预期工作.

那么,staticfiles_storage.exists在DEBUG模式下,有什么方法可以开始工作吗?

(注意:虽然我知道我可以运行collectstatic以使其正常工作,但我讨厌在我积极开发时定期运行它来收集我所有应用程序中的所有资产)

提前致谢 -

leo*_*leo 7

我想我有一个解决方案.而不是使用staticfiles_storage.exists,我将依靠Django的静态文件查找程序为我找到该文件.像这样:

>>> 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'
Run Code Online (Sandbox Code Playgroud)

这应该是我的需求的完美之选,因为我需要做的就是检查文件是否存在于一个目录而不是另一个目录中 - 无论它是在应用程序的根目录中还是STATIC_ROOT无关紧要.

希望这有助于其他人.