Даже если я обслуживаю медиафайлы с помощью 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

  1. сначала дайте разрешение на папки static и media

    sudo chmod g+s /var/www/mysite
    sudo chmod o-rwx /var/www/mysite
    
  2. Далее необходимо настроить nginx "mysite.conf"

    .
    sudo nano /etc/nginx/sites-enabled/mysite.conf
    
  3. запишите этот код в "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;
        }
    }
    
  4. более подробную информацию вы можете найти здесь: Как сервер статических и медиа файлов в nginx

Вернуться на верх