常緑の問題、静的ファイルが提供されないために立ち往生しています。 逆に、サブツリーに配置されたファイルは、の下で正しく提供されます。 MEDIA_ROOT
MEDIA_URL
剥ぎ取られたsettings.py
:
DEBUG = True
STATIC_URL = '/static/'
STATIC_ROOT = '/home/foo/devel/static'
MEDIA_URL = '/media/'
MEDIA_ROOT = '/home/foo/devel/media'
# the following is deprecated but is it seems grappelly requires it
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
STATIC_FILES = ()
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
私が行ったプロジェクトを作成するには:
$ cd /home/foo/devel/
$ virtualenv testdrive
$ . bin/activate; pip install django; cd testdrive
$ django-admin.py fbtest
そして、このディレクトリツリーを取得しました(削除):
. <-- /home/foo/devel/
├── bin
├── fbtest
│ └── fbtest
│ ├── media
│ │ └── foo.jpg
│ ├── static
│ └────── foo.jpg
├── include
└── lib
下のファイルSTATIC_URL
はDjangostaticfiles(私の場合ではない)によって自動的に提供される必要がありますが、他のファイルは手動で処理する必要があります。urls.py
だから私はこれらの行を:に追加しました
import settings
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL.lstrip("/"),
'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
)
アクセスhttp://host/media/filebrowser/foo.jpg
は機能しhttp://host/static/foo.jpg
ますが、エラー404が発生します。なぜですか?