Django管理页面缺少images / css / js

时间:2012-12-03 16:48:10

标签: python django

我发现一些问题是我的问题,你的解决方案没有帮助我所以我开始了一个新的问题。基本上这就是我看到管理页面的方式 no css/no js/ no images

Apache的配置:

<VirtualHost *.*.*.*:80>
    ServerName ********.org
    ServerAdmin ****@******.org

    WSGIScriptAlias / /var/www/webproxy/webproxy/wsgi.py

    DocumentRoot /var/www/cgi-bin/
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/

    ErrorLog /var/www/webproxy/apache/error.log

LogLevel warn

CustomLog /var/www/webproxy/apache/access.log combined

Alias /media/ "/var/www/webproxy/media/"

<Directory "/var/www/webproxy/media/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

<Directory "/var/www/webproxy/static/">
    Order deny,allow
    Allow from all
</Directory>

这就是我在urls.py中所拥有的:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

from core import urls as core_urls

from settings import MEDIA_ROOT, WEBPROXY_MEDIA_ROOT

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': MEDIA_ROOT}),
    (r'^ui/(?P<path>.*)$', 'django.views.static.serve', {'document_root': WEBPROXY_MEDIA_ROOT}),
)

settings.py:

MEDIA_ROOT = '/var/www/webproxy/media/'
STATIC_ROOT = '/var/www/webproxy/static/'
WEBPROXY_MEDIA_ROOT = '/var/www/webproxy/static/media/'

我不确定这里有什么问题。任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

首先,您不应该通过生产中的django.views.static.serve提供静态文件,因为它仅用于 进行本地开发(阅读文档here):

  

可能有项目的静态资产以外的文件   方便,你想让Django在当地为你服务   发展。

其次,您的Django Admin静态文件位于Django安装位置下。我发现直接使用这些文件比在我自己的静态文件目录下复制(或符号链接)Django管理静态文件更好的解决方案。

我的服务器上的Django静态文件位置示例:

/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;

因此,在您的网络服务器配置中,您必须将网址/media/admin指向

[my_django_location]/contrib/admin/static/admin/

如果您在本地做事,那么您可能需要在urls.py中输入其他条目:

(r'^admin/static/(?P<path>.*)$', 'django.views.static.serve', '/path/to/your/admin/files/'),