您始终可以通过使用相对/根目录路径来避免此问题:
<link rel="stylesheet" href="/css/screen.css">
Run Code Online (Sandbox Code Playgroud)
如果必须使用完整的URL,我不确定为什么不能使用https协议(这是正确的解决方案),但是还有另一个选择:根本不指定协议。
<link rel="stylesheet" href="//example.com/css/screen.css">
Run Code Online (Sandbox Code Playgroud)
http://paulirish.com/2010/the-protocol-relative-url/
如果浏览器正在通过HTTPS查看当前页面,则它将使用HTTPS协议请求该资产,否则通常会*通过HTTP请求该资产。这样可以防止IE中出现严重的“此页面同时包含安全和非安全项目”错误消息,从而使所有资产请求都保持在同一协议内。
然而:
警告:在
<link>样式表的@import上使用时,IE7和IE8将文件下载两次。但是,所有其他用途都很好。
因此,如果必须指定完整的URL,则最佳/正确方法是:
<link rel="stylesheet" href="https://example.com/css/screen.css">
Run Code Online (Sandbox Code Playgroud)
真的没有其他选择。两种方法中的CSS文件本身中的图像和资源的相对路径都可以正常工作,并且不会触发安全错误。如果在CSS文件中需要绝对URL,则可以使用相同的技巧。