https页面引入http css会被浏览器直接拦截,不发起请求,显示blocked:mixed-content;因css属主动型混合内容,可篡改渲染逻辑和js行为,现代浏览器强制阻断,须将所有href及@import/url()中的http://显式改为https://。

HTTPS 页面里引入 HTTP 的 CSS,浏览器根本不会发请求——不是加载失败,是直接丢弃。你看到的 blocked:mixed-content 状态,是在 Network 面板里那条 <link href="http://..."> 请求的 Status 列里明明白白写着的。
为什么 Chrome/Firefox/Edge 会直接拦掉 HTTP CSS
CSS 属于“主动型混合内容”(active mixed content),它能改变 DOM 渲染、影响伪元素、干扰 getComputedStyle(),甚至触发 FOUC 或布局错乱。浏览器不警告,直接阻断,这不是兼容性问题,是强制安全策略。
-
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans">—— 典型被拦位置 - CSS 文件内部的
@import url("http://...")—— Network 面板里会显示为子请求,同样被拦 - 后端模板拼接的:
echo '<link href="http://'%20.%20%24host%20.%20'/css/app.css>'%20%E2%80%94%E2%80%94%20%E5%8A%A8%E6%80%81%E7%94%9F%E6%88%90%E4%B9%9F%E9%80%83%E4%B8%8D%E8%BF%87 %0A
%E6%80%8E%E4%B9%88%E5%BF%AB%E9%80%9F%E5%AE%9A%E4%BD%8D%E6%89%80%E6%9C%89%E8%A2%AB%E6%8B%A6%E7%9A%84%20HTTP%20CSS
%0A%E5%88%AB%E9%9D%A0%E8%82%89%E7%9C%BC%E6%89%AB%20HTML%E3%80%82%E6%89%93%E5%BC%80%20Chrome%20DevTools%20%E2%86%92%20Network%20%E6%A0%87%E7%AD%BE%E9%A1%B5%20%E2%86%92%20%E5%88%B7%E6%96%B0%E9%A1%B5%E9%9D%A2%20%E2%86%92%20%E5%9C%A8%20Filter%20%E8%BE%93%E5%85%A5%E6%A1%86%E9%87%8C%E8%BE%93%E5%85%A5%20mixed%EF%BC%8C%E7%AB%8B%E5%88%BB%E9%AB%98%E4%BA%AE%E6%89%80%E6%9C%89%E8%A2%AB%E6%8B%A6%E8%AF%B7%E6%B1%82%E3%80%82%E7%82%B9%E5%87%BB%E4%BB%BB%E4%B8%80%E8%A2%AB%E6%8B%A6%E9%A1%B9%EF%BC%8C%E7%9C%8B%20Initiator%20%E5%88%97%EF%BC%8C%E5%B0%B1%E8%83%BD%E5%8F%8D%E6%9F%A5%E5%88%B0%E6%98%AF%E5%93%AA%E8%A1%8C%20<link>%20%E6%88%96%20JS%20%E5%8A%A8%E6%80%81%E6%8F%92%E5%85%A5%E5%AF%BC%E8%87%B4%E7%9A%84%E3%80%82
- %0A
- %E6%B3%A8%E6%84%8F%EF%BC%9A%E5%8D%8F%E8%AE%AE%E7%9B%B8%E5%AF%B9%20URL%EF%BC%88
href=">)看似省事,但若 CDN 不支持 HTTPS(比如某些老旧内网静态服务),会直接 404 - 本地开发时用
http://localhost:3000加载页面却引用线上http://xxx.com/style.css,同样触发拦截——协议不一致即风险
替换 HTTP CSS 的唯一可靠做法
显式写死 https://。不要依赖协议相对写法,尤其当目标域名存在证书异常、HTTP 回退或 CDN query 参数(如 ?v=1.2.3)时,// 会失效或出错。
- 先确认第三方是否真不支持 HTTPS:把
http://fonts.googleapis.com改成https://fonts.googleapis.com直接访问试试,99% 都通 - CDN 如
https://cdn.jsdelivr.net、https://unpkg.com全部支持 HTTPS,旧文档写的“仅 HTTP”大多是过时信息 - 如果真遇到不支持 HTTPS 的老旧服务,必须走代理或镜像迁移,不能妥协用
//或降级到 HTTP
最容易被忽略的是 CSS 内部的 @import 和 url() 引用——它们不会在 HTML 里出现,却一样触发 blocked:mixed-content,得进 CSS 文件逐行检查。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











