5

我正在尝试编写一些代码来检查在调试模式下是否存在静态文件,但我无法让它工作。这是我在控制台中尝试过的:

>> 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 以使其正常工作,但我不想定期运行它以在我积极开发时从我的所有应用程序中收集所有资产)

提前致谢 -

4

1 回答 1

8

我想我有一个解决办法。我将不使用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'

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

希望这对其他人有帮助。

于 2013-03-12T16:46:48.530 回答