vue项目部署后,ios部分图片不显示
在本地跑一切都挺好的,但是部署后,安卓图片可以正常显示,ios不行后来用微信调试工具调式发现报了警告,然后我就怀疑是这个警告导致的图片不显示Mixed Content:是为了浏览器的安全性而引入的,解释:在https中,如果引入了http资源,浏览器会认为这是不安全的资源,将会默认会阻止而且在开发H5中ios和android中存在一起区别,比如http 和https的混用。ios上http 和ht
在本地跑一切都挺好的,但是部署后,安卓图片可以正常显示,ios不行
后来用微信调试工具调式发现报了警告,然后我就怀疑是这个警告导致的图片不显示
Mixed Content:是为了浏览器的安全性而引入的,解释:在https中,如果引入了http资源,浏览器会认为这是不安全的资源,将会默认会阻止
而且在开发H5中ios和android中存在一起区别,比如http 和https的混用。ios上http 和https不能混用,android上无影响。解决的办法是使用统一的协议。
也看了一下接口返回来的图片地址,能显示的确实是https,显示不出来的url是http
这里有两种解决办法
第一种:
简单粗暴,直接在头部引入(public/index.html)加上就是强制性把所有的http改成https
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
第二种:
就是forEach循环一下,把http或者https手动去除一下,这样请求回来的资源会根据你目前是https还是http自动加上
比如返回来的图片是这个
http://cdn1.qqzby.net/product/img/20220115143255104.jpg
去除http
//cdn1.qqzby.net/product/img/20220115143255104.jpg
至此部署后ios图片不显示问题就解决了
但是隔天,我想本地调试的时候,跟往常一样
打开链接,就报错了....
仔细冷静下来看了一下报错信息
https://172.0.9.107:8080
是的,就是昨天加了那个meta标签,强制性把http都给你转成https了
所有本地调式的时候,我就把meta注释,等要部署的时候再放出来~
更多推荐
所有评论(0)