2

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 は機能しますが、管理者の css は機能しません。これは私をかなり困惑させました。

4

1 に答える 1

0

そのエイリアスを追加すると、すべての.css リクエストがキャプチャされますが、管理 CSS を提供できるように見えるだけです。それを削除すると、css リクエストが に到達することを意味し、おそらく... django が静的メディアを提供しますWSGIScriptAliasDEBUG = True

django に組み込まれている静的サーバーが管理者の CSS で機能しない理由がわかりません - STATICFILES_FINDERS を設定しましたか?

とにかく、エイリアスは実際には次のようにする必要があるため、すべての静的ファイルを提供できます。

  AliasMatch /static/ /var/www/projectmanagement/django/static/
于 2013-03-11T19:54:12.950 に答える