2009-09-24 36 views
20

Tôi đang chạy Django trên Ubuntu Server 9.04.Nginx không phục vụ tĩnh

Django hoạt động tốt, nhưng nginx không trả lại các tập tin tĩnh - luôn 404.

Dưới đây là cấu hình:

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; 
} 

phiên bản Nginx là 0.6.35.

Tất cả các thư mục tồn tại và tạo 777 (gỡ lỗi hoang tưởng). Khối nhận xét không giúp ích gì khi tôi bỏ ghi chú.

+1

thuộc về serverfault.com – ChristopheD

+0

srry, tôi không hiểu ý bạn là gì – DataGreed

Trả lời

56

Thiết lập thư mục của bạn như thế nào? Bạn có thư mục static trong số /home/user/www/oil/oil_database/static_files không? Trong trường hợp đó, các chỉ thị sẽ trông như thế này (lưu ý đường gạch chéo trong /static/):

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

Nếu bạn muốn ánh xạ đường /home/user/www/oil/oil_database/static_files đến URL /static/, bạn phải hoặc là

  • đổi tên thư mục static_files-static và sử dụng chỉ thị này:

    location /static/ { 
        autoindex on; 
        root /home/user/www/oil/oil_database/; 
    } 
    
  • sử dụng một bí danh:

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

Xem tài liệu trên rootalias chỉ thị.

+1

+1 đánh bại tôi với nó. :-) –

+0

không, không có thư mục "tĩnh". Cảm ơn bạn, tôi sẽ thử bí danh. – DataGreed

+1

bí danh đã hoạt động! Tuyệt vời, cảm ơn bạn rất nhiều :) – DataGreed

1

Tôi có cấu hình tương tự cho các trang web Django của mình, nhưng tôi nghĩ bạn muốn sử dụng alias thay vì root cho phương tiện của mình. Ví dụ:

location /static { 
    alias /home/user/www/oil/oil_database/static_files; 
} 
Các vấn đề liên quan