HTTPS以及如何引用文件和图像

tom*_*456 0 css security https http

我应该如何从安全区域中的网页引用我的css文件(位于非安全区域中)。我已经考虑过将其复制(将其移入安全区域),但这似乎效率很低。

任何建议,不胜感激。(ps很有可能会有一些后续问题哈哈)

Wes*_*rch 5

您始终可以通过使用相对/根目录路径来避免此问题:

<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,则可以使用相同的技巧。