2011-12-03 11 views
12

私はNginxで新しく、私は正常にNginxに私のdjangoプロジェクトをバインドしました。しかし私は私の静的なファイルを提供することはできませんし、私はメディアフォルダの場所を間違って設定したと思います。ここに私のファイルツリーです:nginx経由でdjangoのメディアファイルを提供するには?

root_directory 
    my_django_project 
     ... 
     manage.py 
     app1 
     app2 
     media 
      admin 
      css 
      js 
      ... 

そして、私のnginx.confは次のようになります:私は私の管理ページを開くと、すべてのCSSページが404エラーを与える

 server { 
       listen 192.168.1.9:80; 
       server_name localhost; 
       # site_media - folder in uri for static files                         

      location /media/ { 
      root /home/nazmi/workspace/portal/media/;                      
       } 

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) { 
    access_log off; # po co mi logi obrazków :)                            
    expires  30d; 
} 
       location/{ 
         # host and port to fastcgi server                          
         fastcgi_pass 127.0.0.1:8080; 
      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 main; 
       error_log  /var/log/nginx/localhost.error_log; 
     } 
} 

。メディアパスを正しく設定するにはどうすればいいですか?ここで

答えて

31

はnginxののwiki example configurationを助けるかもしれない、私はlocalhostのポート8000​​でGunicornでDjangoのサーブ私はnginxのサーバーのセットアップ

server { 
    server_name example.com www.example.com; 
    location /static { 
     autoindex on; 
     alias /home/myusername/myproject/static/; 
    } 
    location /media { 
     autoindex on; 
     alias /home/myusername/myproject/media/; 
    } 
    location/{ 
     proxy_pass http://127.0.0.1:8000; 
    } 
} 

を持っている方法の例(それはproxy_passが何のためにあるのかだ)

です君も。彼らの静的ファイル提供では、許可されたファイルタイプを指定し、 'エイリアス'ではなく 'root'を使用しますが、それらは似ています。

こちらはServerFaultです。

+3

新しいユーザーに:メディアファイルが 'text/plain'のデフォルトのmimetypeで提供されている場合、あなたのメディアファイルはブラウザによって無視されるので、' include /etc/nginx/mime.types; 'を追加することを忘れないでください。 –

+0

私は "media.example.com"のように異なるURLで提出されたメディアをサーバーしたいです。どうすればそれを達成できますか? – Kishan

関連する問題