【问题标题】:Serving admin css for django 1.5 using apache使用 apache 为 django 1.5 提供管理员 css
【发布时间】:2013-02-26 22:22:24
【问题描述】:

我第一次将基于 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 工作但不是管理员的。这让我很困惑。

【问题讨论】:

    标签: django apache django-1.5


    【解决方案1】:

    添加该别名将捕获 所有 .css 请求,但看起来只能为管理员 css 提供服务。删除它意味着 css 请求将到达您的 WSGIScriptAlias,我认为您已经收到了 DEBUG = True...所以 django 将为您提供静态媒体。

    我不知道为什么 django 的内置静态服务器不适用于您的管理员 css - 您是否设置了 STATICFILES_FINDERS?

    不管怎样,你的别名应该是这样的,所以它可以为你所有的静态文件提供服务:

      AliasMatch /static/ /var/www/projectmanagement/django/static/
    

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 2011-08-10
      • 2017-02-21
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2012-03-19
      • 2017-08-07
      • 2014-07-06
      相关资源
      最近更新 更多