21

UbuntuServer9.04でDjangoを実行しています。

Djangoはうまく機能しますが、nginxは静的ファイルを返しません-常に404です。

構成は次のとおりです。

server {
    listen 80;
    server_name localhost;

    #site_media - folder in uri for static files
    location /static  {
        root /home/user/www/oil/oil_database/static_files;
        autoindex on;
    }

    #location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
    #   root /home/user/www/oil/oil_database/static_files;
    #   access_log off;
    #   expires 30d;
    #}

    location / {
        root html;
        index index.html index.htm;
        # host and port to fastcgi server
        #fastcgi_pass 127.0.0.1:8080;
        fastcgi_pass unix:/home/user/www/oil/oil_database/oil.sock;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
    }

    access_log /var/log/nginx/localhost.access_log;
    error_log /var/log/nginx/localhost.error_log;
}

Nginxのバージョンは0.6.35です。

すべてのディレクトリが存在し、777(デバッグパラノイア)になりました。コメントアウトされたブロックは、コメントを外しても役に立ちません。

4

2 に答える 2

59

ディレクトリの設定はどうですか?にフォルダstaticはあります/home/user/www/oil/oil_database/static_filesか?その場合、ディレクティブは次のようになります(の末尾のスラッシュに注意してください/static/)。

location /static/  {
    autoindex    on;
    root /home/user/www/oil/oil_database/static_files;
}

パス/home/user/www/oil/oil_database/static_filesをURLにマップする/static/場合は、次のいずれかを行う必要があります。

  • フォルダの名前をに変更し、次のディレクティブを使用static_filesします。static

    location /static/  {
        autoindex    on;
        root /home/user/www/oil/oil_database/;
    }
    
  • エイリアスを使用します。

    location /static/  {
        autoindex    on;
        alias /home/user/www/oil/oil_database/static_files/;
    }
    

rootおよびaliasディレクティブに関するドキュメントを参照してください。

于 2009-09-24T22:07:12.927 に答える
2

私のDjangoサイトにも同様の構成がありますが、メディアaliasの代わりに使用したいと思います。root例えば:

location /static {
    alias /home/user/www/oil/oil_database/static_files;
}
于 2009-09-24T22:11:05.627 に答える