我第一次将基于 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 文件中的第一个别名之前,我让管理员 css 工作,但不是站点的 css。如果它消失了,那么该网站的 CSS 工作但不是管理员的。这让我相当难过。