Tôi mới ở Nginx, tôi đã thành công ràng buộc dự án django của tôi với Nginx. Tuy nhiên tôi không thể phục vụ các tệp tĩnh của mình và tôi đoán tôi đã đặt sai vị trí thư mục phương tiện của mình. Đây là cây tập tin của tôi:Làm cách nào để phân phối các tệp phương tiện django qua nginx?
root_directory
my_django_project
...
manage.py
app1
app2
media
admin
css
js
...
Và nginx.conf tôi đi như thế:
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;
}
}
Khi tôi mở trang quản trị của tôi, tất cả các trang css cho lỗi 404. Bạn có thể cho tôi biết cách tôi có thể đặt đường dẫn phương tiện của mình một cách chính xác không?
Đối với người dùng mới: Đừng quên thêm 'include /etc/nginx/mime.types;' vì tệp phương tiện của bạn sẽ bị trình duyệt bỏ qua nếu chúng được phân phối với mimetype mặc định là 'text/plain' –
Tôi muốn phương tiện truyền thông máy chủ được gửi bởi các url khác nhau, ví dụ: "media.example.com". làm thế nào tôi có thể đạt được điều đó? – Kishan