文档首页> 技术教程> 混合内容警告:HTTPS 页面里的 HTTP 资源

混合内容警告:HTTPS 页面里的 HTTP 资源

发布时间:2026-08-27 19:36        更新时间:2026-08-27 23:05
页面本身走 HTTPS,里面却引用了 http:// 地址的图片、脚本或样式,浏览器就会报混合内容(Mixed Content)警告。这个问题的处理思路很固定:找到、替换、验证,一般半天内能改完,关键是查全、别留死角。 为什么有的资源直接被拦 浏览器把混合内容分两类。被动内容指图片、音频、视频,现代浏览器通常自动升级成 https 重试,升级失败就显示不出来;主动内容指 script、iframe、接口请求这类能执行代码或改变页面的资源,一律直接拦截。所以典型症状是页面骨架正常、图片裂图,或者某个功能静默失效,控制台里一堆红色警告。样式表和字体文件介于两者之间,不同浏览器处理策略不一样,有的直接拒绝加载,页面整体裸奔,别指望浏览器的自动升级,全部改造完才是干净状态。 怎么排查 打开浏览器开发者工具的 Console 面板,警告会明确列出哪个 URL 是 http;Network 面板里被 blocked 的请求也能对上。代码层面可以在项目目录搜: grep -rn 'src="http://' ./theme/ grep -rn 'href="http://' ./theme/ 站点跑起来之后还能从外部抓一遍做交叉验证: curl -s https://example.com | grep -o 'http://[^"]*' | sort -u 内容存数据库的系统(CMS 类)还要查文章正文里的旧链接,只改模板不够,历史内容里的 http 地址一样会触发警告,这类问题往往改造完页面之后还残留一两个,报错就来自这里。 改造顺序 先把代码里写死的 http:// 绝对地址改成 https:// 或以 // 开头的协议相对写法;再处理数据库里的历史正文,用更新语句批量替换域名部分,替换前先备份表;最后过一遍第三方引用——统计代码、字体文件、接口回调必须有 HTTPS 版本,没有的先下线或换替代方案。另外检查 sitemap 和 robots.txt 里的地址是否同步更新,搜索引擎会顺着旧地址继续抓 http 版本。全部改完,用无痕窗口重新打开页面,Console 干净、Network 里没有 blocked 请求,这项改造才算收尾。