Даже если я обслуживаю медиафайлы с помощью nginx, они не появляются на сайте
Я пытаюсь использовать nginx, чтобы поставить мое приложение django на производство. Но я не могу использовать изображения на сайте, даже если я настроил nginx. Настройка моего сервера nginx:
server {
server_name example.com www.example.com;
location /static/ {
root /home/myusername/myproject/static/;
}
location /media/ {
root /home/myusername/myproject/media/;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
}
Мой html файл:
{% extends 'base.html' %}
{% block content %}
<div class="column">
{% for dweet in dweets %}
<div class="box">
{{dweet.body}}
<span class="is-small has-text-grey-light">
({{ dweet.created_at }} από {{ dweet.user.username }})
</span>
<figure>
<img class="is-rounded" src="/media/{{dweet.image}}" alt="connect" style="max-height:300px">
</figure>
</div>
{% endfor %}
</div>
{% endblock content %}
Я играл с путями к каталогам, но все равно ничего.
Вот ваше решение:
Примечание: для этого решения необходимо использовать nginx и gunicorn
сначала дайте разрешение на папки static и media
sudo chmod g+s /var/www/mysite sudo chmod o-rwx /var/www/mysite
Далее необходимо настроить nginx "mysite.conf"
.sudo nano /etc/nginx/sites-enabled/mysite.conf
запишите этот код в "mysite.conf"
.server { listen 80; server_name <domain name or ip>; location = /favicon.ico { access_log off; log_not_found off; } location /static/{ autoindex on; alias /var/www/mysite/static/; } location /media/ { autoindex on; alias /var/www/mysite/media/; } location / { include proxy_params; proxy_pass http://unix:/run/gunicorn.sock; } }
более подробную информацию вы можете найти здесь: Как сервер статических и медиа файлов в nginx