pylixm / django-mdeditor

Django-mdeditor is Markdown Editor plugin application for django base on Editor.md.
https://pypi.org/project/django-mdeditor/
GNU General Public License v3.0
485 stars 109 forks source link

上传图片问题 #74

Closed starshine360 closed 4 years ago

starshine360 commented 4 years ago

在admin后台,添加图片时,点击本地上传,图片正确存入了相应的文件夹,请问此时图片地址应该填什么才可以使得图片正确显示呢?

Rantele commented 4 years ago

同问

KangKang-Wang commented 4 years ago

同样的问题

PandapanZ commented 4 years ago

from django.conf.urls import url, include from django.conf.urls.static import static from django.conf import settings ...

urlpatterns = [ ... url(r'mdeditor/', include('mdeditor.urls')) ]

if settings.DEBUG:

static files (images, css, javascript, etc.)

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

from django.conf.urls.static import static和最后那段debug加上之后就可以显示图片了

pylixm commented 4 years ago

这属于django的静态文件的问题了,图片上传之后上传框会回显图片的url 地址,可直接使用该地址用来显示图片。该地址就是你在settings 中配置的MEDIA_URL +editor+文件名。例如实例中的结构为: http://127.0.0.1:8001/media/editor/y1_DSC_4920_20200406122423520098.jpg

其次,还要除以django debug 模式和生产模式对静态文件的区别。debug模式时,需要再url 里显示的添加urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ,而在生产模式(环境)中,静态文件是nginx等web容器管理的,无需添加该url 配置。

KangKang-Wang commented 4 years ago

是的,这边是完全参考demo的配置做的,在Django3.0的环境下仍然不支持上传图片后取得 Image 上面是来自前端的报错信息

pylixm commented 4 years ago

@KangKang-Wang 看下你console 下是否有如下报错,如有可增加 X_FRAME_OPTIONS 配置,该配置django3.0+下默认是deny和之前版本有区别。

image

KangKang-Wang commented 4 years ago

image 报错信息为以上,我的setting.py设置了X_FRAME_OPTIONS = 'SAMEORIGIN'

KangKang-Wang commented 4 years ago

文件也已经成功上传到目标文件夹内,可是前端拿不到该图片的url

pylixm commented 4 years ago

@KangKang-Wang 可否给我一个可复现上边错误的最小demo代码,我调试下。

KangKang-Wang commented 4 years ago

demo.tar.gz 在admin里面直接对Comment添加就可以复现了,我用的sqlite

pylixm commented 4 years ago

没复现,你再别比对下。 test_md.zip

KangKang-Wang commented 4 years ago

通过对比测试,问题出在浏览器兼容方面,我刚刚改用Firefox显示正常,可以获取到图片URL,改用原来的Chrome就不行,报错的地方还在那块JavaScript代码那,请参考: image