我正在尝试通过相对链接在我的 ssl 网站上显示来自非 ssl url 源的图像,确保挂锁显示为绿色并且不会发送混合内容。虽然我知道这可能不是最好的前进方式,但我有两个问题:
1)我有2个来源:
http://bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg
和
http://bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg
如果我将第一个源转换为:
//bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg
它不会显示在 Chrome 中。
如果我将第二个源转换为:
//bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg
它将显示在Chrome中,挂锁显示为绿色。
有人可以解释一下其中的区别吗?
2)有没有更好的方法可以在SSL站点中显示来自非SSL URL外部源的图像,以确保挂锁为绿色。
任何帮助将不胜感激。
有趣的是你应该发布这个。我今天对类似的事情有一个非常奇怪的行为,你别无选择,只能使用//example.com/......
,这只是一个(谷歌)Chrome的东西。
这里的区别在于,在使用//
时,它将自动解析为相应的协议;您应该使用该协议,这对于JS脚本,图像,表单等。
注意:如果代码中任何地方都混合了http/https,那么这也会造成严重破坏,并将在任何浏览器中抛出有关混合内容的消息。
如果您的网址以"//"开头,则表示浏览器应使用父网页的协议。在你的情况下,它是https。
所以你的两个链接变成了:
https://bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg
但是 bc01.rp-online.de 没有有效的https证书。 和
https://bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg
这很完美。
如果您在 https 网站中包含 http 图片,Chrome 不会显示"安全"绿色挂锁,因为您的网站并不完全安全:某些项目可能会被第三方拦截/修改。
要拥有绿色挂锁,您应该只使用安全(https)图像/资源。如果这些图像在https中不可用(或者它们的https链接已断开或重定向到http),那么您需要找到另一种解决方案,例如托管自己的图像。