我是第一次将基于Django 1.5构建的应用程序移动到运行apache的开发服务器上。我有它运行正常,但我有CSS服务的问题。我可以让网站的CSS工作,但不是管理员的CSS或管理员的CSS工作,但不是网站的CSS。
我按照文档进行操作,并使用collectstatic命令将所有静态资源放入STATIC_ROOT文件夹。
这是我设置文件中的相关数据
STATIC_ROOT = '/var/www/projectmanagement/django/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/var/www/projectmanagement/django/projectmanagement/projects/static',
)
这是来自httpd.conf的相关数据
Alias /static/admin/ /var/www/projectmanagement/django/static/admin/
Alias /static /var/www/projectmanagement/django/static/
<Directory /var/www/projectmanagement/django/static/>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /var/www/projectmanagement/django/projectmanagement/django.wsgi
<Directory /usr/local/wsgi/scripts>
Order allow,deny
Allow from all
</Directory>
和我的vhost.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@pmt.com
ServerName pmt.com
ServerAlias www.pmt.com
DocumentRoot /var/www/projectmanagement/html/
ErrorLog /var/www/projectmanagement/logs/error.log
CustomLog /var/www/projectmanagement/logs/access.log combined
WSGIScriptAlias /projectmanagement /var/www/projectmanagement/django/projectmanagement/django.wsgi
<Directory "/var/www/projectmanagement/html">
php_admin_value open_basedir "/var/www/projectmanagement/html/:/tmp/:/var/www/projectmanagement /django/projectmanagement/"
php_admin_value include_path "/var/www/projectmanagement/html/:/tmp/:/var/www/projectmanagement /django/projectmanagement/"
</Directory>
</VirtualHost>
当我添加行
时 AliasMatch /([^/]*\.css) /var/www/projectmanagement/django/static/admin/css/$1
在我的httpd.conf文件中的第一个别名之前,我得到admin css工作但不是网站的css。如果它已经消失,那么网站的css可以运行,但不是管理员的。这让我很难过。
答案 0 :(得分:0)
添加该别名将捕获所有 .css请求,但只能看起来能够为admin css提供服务。删除它意味着css请求将到达您的WSGIScriptAlias
,我认为您已经DEBUG = True
...所以django将为您提供静态媒体。
我不知道为什么django的内置静态服务器不适用于你的admin css - 你设置了STATICFILES_FINDERS吗?
无论如何,你的别名真的应该是这样的,所以它可以提供你所有的静态文件:
AliasMatch /static/ /var/www/projectmanagement/django/static/