Как исправить 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)