个别图片请求连接有问题

来源:8-1 viewsets实现商品详情页接口

Simon_zzw

2020-09-09

http://img.mukewang.com/szimg/5f588f1509f74b4412740816.jpg

读取失败的图片请求的是8080端口,正常能找到的图片都是请求的8000端口,想问问老师怎么改呀?该配置的地方我应该都配置好了,填的也都是8000端口

settings:

http://img.mukewang.com/szimg/5f588fae09a814e605620220.jpg

urls:

http://img.mukewang.com/szimg/5f588fc30953a64a08940331.jpg

api.js:

http://img.mukewang.com/szimg/5f588ff8099ef6c911060369.jpg

写回答

5回答

bobby

2020-09-18

//img1.sycdn.imooc.com/szimg/5f64a65a09b1af5a18290690.jpg 这个是上传图片之后返回的url的具体逻辑 你可以在这里打个断点看看返回的url是否带有域名

0
4
bobby
回复
Simon_zzw
好的。
2020-09-24
共4条回复

bobby

2020-09-17

//img.mukewang.com/szimg/5f62d58809862db012300668.jpg分别就1处和2处说明一下:

1处这个url是的带了域名的, 所以这个图片返回给浏览器,浏览器会直接显示出来,因为域名完整

2处返回的html,html中的图片是相对路径,所以浏览器会自动加上当前的浏览器的域名,就是 127.0.0.1:8080, 这个域名是node来接管的,所以当然加上完整的域名反而显示不出来了,因为图片是django管理的 node无法得知,所以你要想办法让生成的html中的图片url不是相对路径而是完整的路径,所以你在settings的media_url中添加上完整域名。这样图片上传的时候url就是完整的,浏览器就无法自己添加当前域名了


至于为什么在xadmin中是没问题的也就清楚了-  因为当你访问xadmin的时候域名就是django的域名啊,。他自动添加上也就没有问题了

0
1
Simon_zzw
感谢老师的详细解答,终于懂了哈哈哈 但是我setting里面已经设置了media_url了呀,为什么还是不行? MEDIA_URL = 'http://127.0.0.1:8000/media/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) MEDIA_ROOT = os.path.join(BASE_DIR, "media")
2020-09-18
共1条回复

Simon_zzw

提问者

2020-09-17

//img1.sycdn.imooc.com/szimg/5f625ba109efbe0511640658.jpg

//img.mukewang.com/szimg/5f625dc80929b3f307050324.jpg


//img1.sycdn.imooc.com/szimg/5f625dda096c563011330457.jpg

//img.mukewang.com/szimg/5f625dfa094a7d2f12160150.jpg

谢谢老师的细心解答···但是好像还是不太懂···于是重新看了下视频 发现我的这一步并没有像老师那样返回image,请问老师这个要怎么解决呀?

0
0

bobby

2020-09-12

 这样给你描述吧。 如果后端返回图片只给了一个相对路径并没有域名,那么浏览器会自动加上当前的服务的域名,因为你是使用node启动的,所以也就会被浏览器自动加上 127.0.0.1:8080/media/xxx/xxx 很明显这个请求会被发送给node 而不是发送给django系统,当然也就找不到了,所以你的数据应该在图片的url中返回完整的包括后端域名的url 防止被浏览器自动加上当前的域名

0
0

bobby

2020-09-10

//img.mukewang.com/szimg/5f59907009f96e8009400545.jpg 你是要解决1处没有到艾玛 还是要解决2处没有代码?

0
3
Simon_zzw
回复
bobby
还是一个一个问题来吧···我没懂老师对于第一问题的解答,我目前看到的是,我从xadmin登进去看数据没问题,图片也都能正常显示,然后浏览器f12看到的结果是他请求的是127.0.0.1:8080,而不是127.0.0.1:8000,所以我觉得问题是在这里···但我不太清楚怎么改···还望老师说得详细一点,感谢感谢
2020-09-12
共3条回复

Python前后端分离开发Vue+Django REST framework实战

Django REST framework课程视频,RESTFul API前后端分离开发

2872 学习 · 2457 问题

查看课程