Как исправить Django Summernote, использующий относительный путь для src url в интеграции изображений?

Я новичок во фреймворке Django и унаследовал проект, который я пытаюсь исправить. Сейчас мой проект работает в докере на url localhost:8000 до развертывания на удаленном сервере.

У меня установлено расширение django-summernote для редактирования текста и интеграции изображений, но оно не работает так, как ожидалось:

Редактор в админке Django работает нормально, и правильно отображает загруженные изображения

Но на моих страницах контента, моя html интеграция предоставляет неверный src url (который возвращает ошибку ofc)

src="/media/django-summernote/2022-02-27/90a1f1ec-ed16-4cc2-a9f8-b0bb30ea4ab8.png"

Ожидаемая html-интеграция должна быть :

src="http://localhost:8000/media/django-summernote/2022-02-27/90a1f1ec-ed16-4cc2-a9f8-b0bb30ea4ab8.png"

Я проверил, и файл изображения действительно существует в папке, ожидаемый url ниже действительно показывает картинку в порядке.

На остальной части сайта интеграция изображений используется просто отлично, когда не связана с summernote.

Я полагаю, что это как-то связано с settings.py или даже с маршрутизатором (который, tbh, все еще немного сложен в моей голове).

settings.py

MEDIA_URL = "/media/"

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

urls.py

urlpatterns = [
...
path("summernote/", include("django_summernote.urls")),
]

Для Django >= 1.7 Просто добавьте это в ваш urls.py

urlpatterns = [
...
path("summernote/", include("django_summernote.urls")),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Вам больше не нужно, если settings.DEBUG, так как Django позаботится о том, чтобы это использовалось только в режиме отладки.

Для Django <= 1.6

if settings.DEBUG:
urlpatterns += patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
    'document_root': settings.MEDIA_ROOT}))

Попробуйте это:

settings.py

MEDIA_ROOT = BASE_DIR / "media"

MEDIA_URL = "/media/"

urls.py

urlpatterns = [
...
path("summernote/", include("django_summernote.urls")),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Вернуться на верх