为什么我的网站在HTTPS下样式加载不正常?
我刚把网站从HTTP迁移到HTTPS,结果发现部分CSS样式没生效,控制台还报混合内容(Mixed Content)警告。我检查了所有资源链接,但还是搞不清哪里出问题了。
比如下面这段CSS,本地开发时完全正常,但部署到HTTPS环境后,背景图就加载不了:
.hero {
background-image: url('http://cdn.example.com/bg.jpg');
background-size: cover;
height: 100vh;
}
是不是因为CSS里用了HTTP的绝对路径?该怎么改才能兼容HTTPS?
把那行改成这样就行:
.hero {
background-image: url('//cdn.example.com/bg.jpg');
background-size: cover;
height: 100vh;
}
或者更稳妥点,直接写死HTTPS:
.hero {
background-image: url('https://cdn.example.com/bg.jpg');
background-size: cover;
height: 100vh;
}
记得检查下其他地方有没有硬编码的HTTP链接,比如HTML里的img、script、link标签,还有JS里动态加载的资源,全改掉就稳了。