由于某种原因,django政府在某些时候被打破了。 css丢失了。
以下是我的设置:
MEDIA_ROOT = os.path.normpath(os.path.join(SITE_ROOT, 'media/'))
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin_media/'
但是,管理页面上生成的行仍为:
<link rel="stylesheet" type="text/css" href="/admin_media/css/base.css" />
但该网站在此文件中提供了404。
它变得更好 - 如果我使用apache查看项目,就会出现问题。如果我使用python manage.py runserver
,则管理员运作良好。
为什么会发生这种情况的任何线索? - 重启apache,没有帮助。
这是我在urls文件中的内容:
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
答案 0 :(得分:9)
好的,我明白了。
对于生产服务器,您必须设置指向您提供的设置的链接。对我来说,我在settings.py文件中选择了admin_media文件夹:
ADMIN_MEDIA_PREFIX = '/admin_media/'
为了告诉apache查找文件,您必须通过添加以下行来编辑启用网站的文件:
Alias /admin_media/ /usr/lib/python2.6/dist-packages/django/contrib/admin/media/
但请注意,这是我的服务器上安装的django contrib admin的路径。您的服务器可能有不同的安装,因此请查看您的设置。通过在终端中复制粘贴来找出你的python安装位置:
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
祝大家好运!