11

これは私のnginx構成です:

    server {
        listen 80;
        server_name localhost;

        keepalive_timeout 5;

        access_log /home/tunde/django-projects/mumu/nginx/access.log;
        error_log /home/tunde/django-projects/mumu/nginx/error.log;

        root /home/tunde/django-projects/mumu;

        location / {
            try_files $uri @proxy_to_app;
        }

        location @proxy_to_app {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://127.0.0.1:8000;
        }
    }

私のsettings.pyは次のようになります:

    import os
    settings_dir = os.path.dirname(__file__)
    PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir))

    STATIC_ROOT = '/home/tunde/django-projects/mumu/STATIC/'
    STATIC_URL = '/static/'

    STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static/'),
    )

私の Supervisord.conf ファイルは次のようになります。

[program: mumu]
command = /home/tunde/ENV1/bin/gunicorn -w 1 --bind=127.0.0.1:8000 mumu.wsgi:application
directory = /home/tunde/django-projects/mumu/
stdout_logfile= /home/tunde/django-projects/mumu/supervisor/logfile.log
stderr_logfile= /home/tunde/django-projects/mumu/supervisor/error.log
user = tunde

問題は、静的ファイルが提供されず、何が間違っているのかわかりません。/static/css/styles.css のような URL は 404 を返します。助けていただければ幸いです。

4

2 に答える 2

21

django の場所に一致する nginx ロケーション ブロックを作成する必要がありますSTATIC_URL。構成すると、nginx は静的アセットの要求も django アプリケーションに転送します。django アプリケーション ログに 404 エラーが表示されていると思いますか? django ではなく、nginx でこれらのリクエストを処理する必要があります。

location /static {
    alias /home/tunde/django-projects/mumu/STATIC/; 
}

必ずdjango admin コマンド を実行して、collectstaticすべての静的アセットがSTATIC_ROOTディレクトリにコピーされるようにしてください。

于 2013-06-30T15:02:40.807 に答える
1
location / {
    try_files $uri @proxy_to_app;
}

変更してください$uri -> $request_uri

location / {
    try_files $request_uri @proxy_to_app;
}
于 2014-05-02T09:48:04.057 に答える