我被卡住了,因为anevergreenissue,静态文件没有提供。相反,放在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
,应服由Django静态文件自动(不在我的情况下),而其他文件有要手动处理。所以我追加这些行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,为什么?
你用什么样的django? – Dingo
对,Django 1.4。 – Paolo
您可以在'INSTALLED_APPS'中添加已剥离的settings.py文件吗? –