Как обслуживать MEDIA-загрузки из summernote в prod-хостинге?
Добрый день и с Новым годом!
В панели администратора, при создании поста, загруженные изображения не отображаются. Ни в админке, ни в опубликованном посте. Они лежат в папке с загруженными изображениями, и через админпанель Django ссылка видна (но не открывается, "Not Found The requested resource was not found on this server") и на хостинг они загружаются (появляются в папке django-summernote по датам). Подскажите как исправить ситуацию?
Статика загружается нормально, все отображается нормально. Проблема только с теми файлами, которые пользователь загружает при компиляции поста.
.htaccess при малейшем изменении от стандартного, предоставленного хостером - сайт перестает открываться. Исходя из этого и рабочей статики, предполагаю, что Apache настроен нормально, тем более, что в инфраструктуре хостера нет упоминания или требования его изменить. Спасибо!
Ниже приведены настройки settings.py:
STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
X_FRAME_OPTIONS = 'SAMEORIGIN'
SUMMERNOTE_THEME = 'bs4'
MEDIA_ROOT = os.path.join(BASE_DIR, 'blog/media/')
MEDIA_URL = '/media/'
models.py
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
image = models.ImageField(upload_to="media/%Y-%m-%d", blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def get_absolute_url(self):
return "/api/article/%i/" % self.id
def __str__(self):
return self.title
Есть подозрение, что проблема в этой 404 ошибке, но как ее решить я xs.
Спасибо!
.htaccess
PassengerAppRoot "/home/app/mynewapp"
PassengerBaseURI "/"
PassengerPython "/home/app/virtualenv/mynewapp/3.9/bin/python"
<IfModule Litespeed>
</IfModule>
У меня была похожая проблема, но мне удалось решить ее, удалив аргумент upload to
в поле media. Благодаря этому медиафайлы загружаются непосредственно в место, указанное в MEDIA_ROOT
, без создания дополнительной папки.