Проблема с загрузкой статических файлов из Digital Ocean Spaces в моем проекте Django

#django #video #static #digital-ocean #digital-ocean-spaces

#django #Видео #статический #digital-ocean #digital-ocean-spaces

Вопрос:

Во время разработки моего проекта я мог отображать видеофайлы с помощью своих шаблонов следующим образом:

 <video width="200" controls>
    <source src='{{ MEDIA_URL }}{{ post.video }}' type='video/mp4'>
    Your browser does not support the video tag.
</video>
 

MEDIA_URL был направлен в media папку в settings.py:

 MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
 

Сейчас я работаю и использую Digital Ocean Spaces, мои статические и мультимедийные файлы обслуживаются STATIC_URL . Когда пользователь создает сообщение, содержащее видеофайл, я вижу, что оно загружено в пробелах, я также могу просмотреть его через администратора Django. Но я больше не могу найти код, который мне нужен, чтобы сделать его воспроизводимым на сайте. Я просто вижу серое поле, сообщающее мне, что файл не поддерживается. Я пытался изменить {{ MEDIA_URL}} {{ STATIC_URL }} , я тоже пытался <source src='{% static "post.video" %}' type='video/mp4' , но ни один из них не сработал. Я не могу найти ответ на этот вопрос нигде в Интернете. Надеюсь, кто-нибудь может помочь.

Комментарии:

1. Вы должны настроить Nginx следующим образом location /static/ { root YOUR_PROJECT_PATH; } location /media/ { root YOUR_PROJECT_PATH;; }

2. При развертывании в digitalocean какой серверный движок вы используете? Я предполагаю, что вы развернули на droplet?

3. Означает ли это, что ваши видео находятся в других папках, кроме css и изображений?

4. Таким образом, это означает, что ваши медиа и статические данные находятся в одной основной папке. В этом случае вы должны использовать STATIC_URL. Что появляется, когда вы проверяете элемент в своем браузере, чтобы проверить путь к STATIC_URL? Вы также сделали /manage.py собирать статику?

5. Можете ли вы распечатать свою консоль и сделать снимок экрана? Вы видите какие-либо ошибки? Возможно, ошибки рендеринга видео?

Ответ №1:

Решение состояло в том, чтобы изменить шаблон на чтение:

 <video width="200" controls>
    <source src='{{ STATIC_URL }}{{ post.video.url }}' type='video/mp4'>
    Your browser does not support the video tag.
</video>