5

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

vi_crumbs_bkg.gifアプリの静的ディレクトリに存在するにもかかわらず、これは失敗します。にシンボリックリンクするとsettings.STATIC_ROOT、すべて期待どおりに機能します。

staticfiles_storage.existsでは、 DEBUG モードで作業を開始する方法はありますか?

(注: これを適切に機能させるために collectstatic を実行するだけでよいことはわかっていますが、積極的に開発している間は、定期的に実行してすべてのアプリからすべてのアセットを収集するのは嫌です)

前もって感謝します -

4

1 に答える 1

8

私は解決策を持っていると思います。を使用する代わりにstaticfiles_storage.exists、Django の staticfile finder を使用してファイルを検索します。そのようです:

>>> 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 に答える