net::ERR_INSECURE_RESPONSE 使用 CDN

net::ERR_INSECURE_RESPONSE with CDN

我已经在 heroku 上部署了一个应用程序,但是 css 不工作。

我正在使用 w3.css 框架,并且我是这样导入它的: <link rel="stylesheet" href="//www.w3schools.com/lib/w3.css">

我得到的错误是: GET https://www.w3schools.com/lib/w3.css net::ERR_INSECURE_RESPONSE

我很确定它与站点证书有关。

但即使我在站点中手动接受 "invalid" 证书,我也会收到 404 错误。

此外,据我所知,w3.css 仅通过 http 提供其 CDN: http://www.w3schools.com/lib/w3.css 不是 https: www.w3schools.com/lib/w3.css

所以,我只是想确认情况确实如此,这不是我的错(不知道如何通过 https 加载某物!)

最后,这不是 Chrome 错误(根据我在 SO 中阅读的内容)。 Firefox 也不行。

更新

特此通知,如预期的那样,当我下载 w3css 框架并在本地链接到它时,错误已解决。

如您所说,这似乎与站点证书(或缺少证书)有关。这就是您在接受无效证书时收到 404 的原因,因为该网站的 https:// 版本不存在。

如果您仍想从 CDN 交付资产,您可以将文件放在源服务器上并通过 CDN 对其进行加速,或者直接将其存储在 CDN 的存储云上(如果适用)。这是比较各种 CDN 提供商的好列表 http://cdncomparison.com/

正在修改回复以使其更准确...

这里有几个问题:

首先。 请注意,此文件无法通过 HTTPS 访问,因为它 returns 是一个 404 错误。 要下载文件,您可以将 http:// 协议添加到 URI 以使用 HTTP 而不是 HTTPS。

其次,最重要的是什么会阻止您从您的网页link访问图书馆; 此库不可公开嵌入。 Web 服务器未使用适当的 CORS header 进行响应。在这种情况下,响应中缺少 Access-Control-Allow-Origin: * header:

< HTTP/1.1 200 OK
< Cache-Control: public,max-age=3600,public
< Content-Type: text/css
< Date: Mon, 29 Aug 2016 01:27:41 GMT
< Etag: "6213abc99edd11:0+ident"
< Last-Modified: Wed, 03 Aug 2016 15:14:31 GMT
< Server: ECS (sea/55DD)
< Vary: Accept-Encoding
< X-Cache: HIT
< X-Powered-By: ASP.NET
< Content-Length: 28929

最好的办法是下载文件,然后 link 从您自己的服务器本地下载文件。