/etc/apache2/site-available/mysite.com
<VirtualHost my_ip_here:80>
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
WSGIScriptAlias / /srv/www/mysite.com/djangoproject/django.wsgi
<Directory "/srv/www/mysite.com/djangoproject/sitestatic">
Order allow,deny
Allow from all
</Directory>
AliasMatch /([^/]*\.css) /srv/www/mysite.com/djangoproject/sitestatic/css/$1
AliasMatch /([^/]*\.js) /srv/www/mysite.com/djangoproject/sitestatic/js/$1
Alias /media/ /srv/www/mysite.com/djangoproject/sitestatic/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
/srv/www/mysite.com/djangoproject/settings.py
MEDIA_ROOT = ''
MEDIA_URL = '/media/'
STATIC_ROOT = '/srv/www/mysite.com/djangoproject/sitestatic/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
实际上,我通过 CSS 和图片正确地看到了我的网站但当我进入 /admin 时,我看到管理站点没有 CSS。我该如何修复?此外,我的 apache 配置是否正确,是否用于提供 css 和 js,我该如何隐藏目录 /media 的内容?
-- 解决方案(感谢 Pratik)--
也许,问题在于 apache 配置中的行顺序。
<VirtualHost my_ip_here:80>
ServerAdmin [email protected]
ServerName site.com
ServerAlias site.com
DocumentRoot /srv/www/site.com/cherryproj/templates
Alias /static/admin /usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/contrib/admin/media/
Alias /static/ /srv/www/site.com/cherryproj/static/
WSGIScriptAlias / /srv/www/site.com/cherryproj/django.wsgi
<Directory "/srv/www/site.com/cherryproj/sitestatic">
Order allow,deny
Allow from all
</Directory>
ErrorLog /srv/www/site.com/logs/error.log
CustomLog /srv/www/site.com/logs/access.log combined
</VirtualHost>
答案1
管理媒体实际上位于 Django 的 dist 包内。
尝试在 Apache 的配置中添加类似这样的内容
Alias /static/admin "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"
如果这不起作用,请在管理页面上查看页面源代码,查看尝试加载 css 的路径,并将 Apache 的别名指向该路径。在 dist-packages 文件夹之外为此管理媒体制作副本可能是一个好主意。此外,您的路径可能会有所不同,特别是如果您使用 virutalenv。
要隐藏媒体文件夹的内容,请执行以下操作
<Directory "/srv/www/mysite.com/djangoproject/sitestatic">
Options -Indexes
Order allow,deny
Allow from all
</Directory>
答案2
在 Ubuntu 12.04.1 LTS 服务器中你必须添加这一行:
别名 /static/admin "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/media"
在您的 Apache2 配置或 VirtualHost 中。