Django的MEDIA_URL与CDN和管理员媒体

0 投票
1 回答
1751 浏览
提问于 2025-04-17 07:02

我在一个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 版本中的这个设置。

撰写回答