通过 HTTP 加载 HTTPS 资产

Posted

技术标签:

【中文标题】通过 HTTP 加载 HTTPS 资产【英文标题】:HTTPS assets loading over HTTP 【发布时间】:2015-03-25 13:19:48 【问题描述】:

我正在尝试通过 HTTPS 加载 Google 字体和图像,但它们继续通过 HTTP 加载,尽管在所有资产中将路径更改为“https”。

混合内容:“https://”页面通过 HTTPS 加载,但请求的样式表“http://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300italic,300,400italic,500,500italic,700,700italic,900,900italic”不安全。此请求已被阻止;内容必须通过 HTTPS 提供。

混合内容:“https://”页面通过 HTTPS 加载,但请求的图片不安全 'http://farm6.staticflickr.com/5267/5783999789_9d06e5d7df_b.jpg'。此内容也应通过 HTTPS 提供。

【问题讨论】:

【参考方案1】:

您可以像这样使用与协议相关的网址:

'//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300italic,300,400italic,500,500italic,700,700italic,900,900italic'. 

另外,别忘了跑

  rake assets:precompile

在推送到 heroku 之前。

【讨论】:

【参考方案2】:

对于使用 laravel 遇到类似问题的人,html::style('css/style.css')HTML::script('js/script.js') 可以通过修改语句来简单地使 HTMLBuilder 安全

HTML::style('css/style.css',array(),true)

HTML::script('js/script.js',array(),true)

'true' 坚持认为内容是安全地或通过 HTTPS 切断的

【讨论】:

以上是关于通过 HTTP 加载 HTTPS 资产的主要内容,如果未能解决你的问题,请参考以下文章

HTTP/2 服务器推送资产加载失败 (HTTP2_CLIENT_REFUSED_STREAM)

Flutter web:如何将资产重定向到其他域?

未通过SwiftUI从资产加载颜色

如何有条件地加载 iOS 7 和 iOS 6 的资产?

Select2 Css 未通过纱线或资产预编译加载

Flutter:无法加载资产文件“car.png”