4

Django を apache にデプロイしようとしていますが、静的な管理ファイルを提供することができません。/var/www/static の下でそれらを探しているようで、それを変更できないようです。

管理サイトは、スタイリング以外は機能しているようです。タイトルとログインフォームを取得します。私のdjangoアプリも機能しています。提供されないのは管理者用の静的ファイルです。

Django 1.4.1 を使用しています。

ファイルは /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static の下にあり、/home/dutt/vaccapp/backend/static/admin からリンクされています。

Apacheエラーログはこれを言います

[Sun Sep 30 10:57:20 2012] [error] [client 192.168.1.10] File does not exist: /var/www/home, referer: http://dathui.example.com/vaccapp/admin/
[Sun Sep 30 10:57:20 2012] [error] [client 192.168.1.10] File does not exist: /var/www/home, referer: http://dathui.example.com/vaccapp/admin/

しかし、私はそれを変更する方法がわかりません。

私のdjangoサイト構成では、

<VirtualHost *:80>
ServerAdmin me@host.com

    ServerRoot "/home/dutt/vaccapp"
    DocumentRoot "/home/dutt/vaccapp"
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/dutt/vaccapp/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

Alias /static/ "/home/dutt/vaccapp/backend/static/"
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
    Order allow,deny
    Options Indexes
    Allow from all
    IndexOptions FancyIndexing
</Directory>

ServerRoot が apache2.conf に設定されていません。

私のsettings.pyから

STATIC_ROOT = '/home/dutt/vaccapp/backend/'
STATIC_URL = '/static/'

STATICFILES_DIRS には何も追加されません。

これは私のapache2.confに追加されます

WSGIScriptAlias /vaccapp /home/dutt/vaccapp/backend/wsgi.py
WSGIPythonPath /home/dutt/vaccapp

<Directory /home/dutt/vaccapp>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
4

5 に答える 5

7

ADMIN_MEDIA_PREFIXはデフォルトで/static/admin/# Django 1.4 で非推奨に設定されています (現在は を使用してSTATIC_URL + 'admin/'います。結果は同じです。

Apache構成の修正は次のとおりです。

Alias /static/admin "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static"
Alias /static "/home/dutt/vaccapp/backend/static"
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
    Order allow,deny
    Options Indexes
    Allow from all
    IndexOptions FancyIndexing
</Directory>

また、WsgiScriptAlias をメインの apache 構成から VirtualHost に移動する必要がありました。

長い議論の後、問題は Django が admin static を適切にインストールしていないことであることがわかりました...それらは互いにシンボリックリンクされていました (非常に奇妙です)。Djangoの再インストールで修正され、現在は正常に機能しています。

于 2012-09-30T09:20:47.047 に答える
1

私の評判が低いため、Igorの回答に小さな詳細を追加するために、回答全体を書く必要があります。

構成にapache構成部分を追加しただけですが、それだけでは不十分でした。私は変更しなければなりませんでした:

"/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static"

"/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin"

最初Alias<Directory>ディレクティブの両方で。

于 2012-11-08T18:07:34.000 に答える
1

次を使ってみる

python manage.py collectstatic

staticfiles アプリ - Django ドキュメント

于 2013-03-16T01:12:25.940 に答える
1

Blazor と同じように、オリジナルの小さなバリエーションを使用する必要がありました。私のセットアップには、django admin を使用しているグラファイト Web が含まれています。参考までに載せておきます。

私のApacheの仮想ホスト:

<VirtualHost *:80>
    ServerName graphite.myhost.com
    Redirect permanent / https://graphite.myhost.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName graphite.myhost.com

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/graphite.cert
    SSLCertificateKeyFile /etc/apache2/ssl/ssl_graphite.key
    SSLStrictSNIVHostCheck on

    WSGIDaemonProcess _graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120 user=_graphite group=_graphite
    WSGIProcessGroup _graphite
    WSGIImportScript /usr/share/graphite-web/graphite.wsgi process-group=_graphite application-group=%{GLOBAL}
    WSGIScriptAlias / /usr/share/graphite-web/graphite.wsgi

    AliasMatch ^/admin/(.*)static/admin(.*)$ /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/$2
    <Directory "/usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/">
            Order allow,deny
            Allow from all
    </Directory>

    Alias /content/ /usr/share/graphite-web/static/
    <Location "/content/">
            SetHandler None
    </Location>

    <Location "/">
            Order allow,deny
            allow from all
            AuthType Basic
            AuthName "Restricted Zone"
            AuthBasicProvider wsgi
            WSGIAuthUserScript /var/www/django_auth.wsgi
            Require valid-user
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/graphite-web_access.log combined

</VirtualHost>

STATIC_URL = 'static/'また、正規表現に問題がないことを確認するために追加しました。

于 2013-03-08T21:46:49.360 に答える