Django的MEDIA_URL与CDN和管理员媒体
我在一个Django 1.3的项目中使用CDN来存放媒体资源,比如图片、CSS文件等等。现在我遇到了一个问题,就是在提供管理后台的资源时出现了问题,我做了以下设置:
在 settings.py
文件中:
MEDIA_URL = 'http://cdn.test.com/'
ADMIN_MEDIA_PREFIX = '/admin_media/'
在 INSTALLED_APPS
中:
'django.contrib.staticfiles',
还有在 urls.py
文件中:
(r'^admin_media/(.*)', 'django.views.static.serve',
{'document_root' : 'django/contrib/admin/media/',
'show_indexes' : True}),
我查看管理后台的HTML时,看到有类似 /admin_media/css/base.css
的路径,但是所有资源都返回了 http 404
的错误。我搞不懂哪里出了问题。
非常感谢。
1 个回答
0
试试下面这个:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
# (... other urls ...)
)
urlpatterns += staticfiles_urlpatterns()
另外,你在 urls.py
文件中提到的 document_root
应该是一个绝对路径:这可能也会导致一些问题。不过,上面的内容应该可以替代你在 Django 版本中的这个设置。