惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
C
Check Point Blog
J
Java Code Geeks
腾讯CDC
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
罗磊的独立博客
Last Week in AI
Last Week in AI
B
Blog
IT之家
IT之家
S
SegmentFault 最新的问题
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
博客园 - 聂微东
U
Unit 42
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
MyScale Blog
MyScale Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
Chrome 禁止混合内容的解决办法 - 少数派
2020-11-08 · via 少数派

Chrome 更新到 84 之后,混合内容会被默认阻止,本文来记录一下解决办法。

背景

上周,我的 Chrome 浏览器升级到了 86,当时并没有感觉到什么异常,直到发现自己的一个网站打开不显示图片了。

图片加载不出来

我使用手机 Chrome 浏览器访问网站,图片显示正常,排除了图片存储商的问题,那很有可能就是浏览器升级导致的。

排查

查看控制台信息

打开控制台,看到了如下的提示信息:

控制台提示信息

这里要简单介绍一下,我使用的图片存储是「LeanCloud」,因为 HTTPS 访问是收费的,所以就只设置了 HTTP 访问。

通过控制台可以看到,浏览器加载的是 HTTPS 的图片链接,访问不了也是理所当然的。

原因

点开上图中黄色的提示信息,提示如下:

Mixed Content: The page at 'https://t.juemuren4449.com/' was loaded over HTTPS, but requested an insecure element 'http://talkfile.juemuren4449.com/2c95e19915d008f20e8a.jpg'. This request was automatically upgraded to HTTPS, For more information see https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html

上面的意思是说,页面的地址是通过 HTTPS 加载的,但是里面有不安全的内容(图片通过 HTTP 加载,被认为是不安全的),所以图片的链接自动升级为了 HTTPS 链接。

图片加载不出来的原因就找到了:Chrome 认为页面使用了 HTTPS 加载,图片如果是 HTTP 加载就不安全,会自动给升级为 HTTPS 加载。

解决问题

说实话,对我来说,Chrome 是好心办坏事了。不过这年头用 HTTPS 肯定是更安全,所以也不能怪人家 Chrome,但我暂时又不想为 HTTPS 的图片去付费,原因是这只是给我自己看的一个网站,只能想办法解决了。

通过我的尝试,有以下两种方式可以暂时解决我这个网站图片不显示的问题。

  • 访问 HTTP 网站页面
  • 允许不安全的内容

HTTP访问

既然你说我是混合内容,也就是说既有 HTTPS 内容,又有 HTTP 的内容,那我全用 HTTP 访问总可以了吧。

确实,通过 HTTP 访问页面图片是可以正常显示的,但是有一个小问题,地址栏的左侧会显示「不安全」的标识,强迫症可能觉得有点难受。

不安全标识

允许不安全内容

另一种方式就是允许当前网址访问「不安全内容」。

访问 HTTPS 的页面,点击地址栏左侧的「锁」,再点击「网站设置」。

进入网站设置

进入到设置页面之后,滑到最下面,可以看到其中有一个选项是「不安全内容」。

不安全内容

点击后面的选项,修改为「允许」即可。

允许不安全内容

最后,回到原来的页面,会提示「重新加载」,点击或者手动刷新即可。

重新加载

至此,页面里的图片就可以正常加载了。

图片正常加载

需要注意的是,即使允许了不安全内容,在隐私模式下,图片仍然显示不出来。

延伸

Edge浏览器

解决完图片显示问题,本来也就完事了,但突然想到微软的 Edge 浏览器也使用了 Chrome 内核,那在 Edge 浏览器下图片是否能显示呢?

想到就立马做了测试,发现 Edge 是可以正常显示图片的,又想到手机上的 Chrome 和 Edge 又是怎么样呢?索性把所有浏览器都升级到最新版本,做了一个表格。

整理后的表格如下(测试网站 https://t.juemuren4449.com ):

浏览器版本默认设置是否屏蔽不安全内容默认是否显示图片允许不安全内容后
电脑版 Chrome86.0.4240.183屏蔽不显示显示
电脑版 Edge86.0.622.61屏蔽显示显示
手机版 Chrome86.0.4240.185无此项设置不显示无此项设置
手机版 Edge45.09.4.5083无此项设置显示无此项设置

有意思的是,Edge 默认也是屏蔽不安全内容,但是图片可以正常显示。

Edge 浏览器控制台提示信息如下:

Mixed Content: The page at 'https://t.juemuren4449.com/' was loaded over HTTPS, but requested an insecure image 'http://talkfile.juemuren4449.com/2c95e19915d008f20e8a.jpg'. This content should also be served over HTTPS.

手机 Chrome 浏览器无法显示图片,暂时只能访问 HTTP 页面,最开始的测试之所以可以显示图片,应该是浏览器版本低的原因。

手机版 Edge 浏览器可以正常显示图片。

Chrome84

通过访问 Chrome 控制台信息里的网址 https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html ,得知 Chrome 从 84 开始阻止混合内容。

我在虚拟机里测试,Windows 下 Chrome 84 到 86 都不能显示我网站的图片,84 之前的版本可以正常显示。

个人建议

以下两种方式虽然可以临时解决问题,但多少都有点问题。

  • 访问 HTTP 网站页面
  • 允许不安全的内容

所以,更彻底的解决办法是把网站的内容全部升级到 HTTPS,这样做也无疑更加安全。

更多关于混合内容的说明,可以访问 https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html 进行了解。