Closed starshine360 closed 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:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.conf.urls.static import static
和最后那段debug加上之后就可以显示图片了
这属于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 配置。
是的,这边是完全参考demo的配置做的,在Django3.0的环境下仍然不支持上传图片后取得 上面是来自前端的报错信息
@KangKang-Wang 看下你console 下是否有如下报错,如有可增加 X_FRAME_OPTIONS 配置,该配置django3.0+下默认是deny和之前版本有区别。
报错信息为以上,我的setting.py设置了X_FRAME_OPTIONS = 'SAMEORIGIN'
文件也已经成功上传到目标文件夹内,可是前端拿不到该图片的url
@KangKang-Wang 可否给我一个可复现上边错误的最小demo代码,我调试下。
demo.tar.gz 在admin里面直接对Comment添加就可以复现了,我用的sqlite
没复现,你再别比对下。 test_md.zip
通过对比测试,问题出在浏览器兼容方面,我刚刚改用Firefox显示正常,可以获取到图片URL,改用原来的Chrome就不行,报错的地方还在那块JavaScript代码那,请参考:
在admin后台,添加图片时,点击本地上传,图片正确存入了相应的文件夹,请问此时图片地址应该填什么才可以使得图片正确显示呢?