Rails 在安全网站上嵌入 youtube 视频
Rails embed youtube videos on secure site
我正在使用 youtube_it gem 将精选的 YouTube 视频加载到我的网站上,它在开发中运行良好,但在部署到产品时我在 Chrome 控制台中收到混合内容错误,因为视频是通过我的 HTTPS 域上的 HTTP 传输的。
我不知道如何更改 embed_html5 方法来删除协议。
这是我的代码
@latest_videos = yt_client.videos_by(:user => 'foobar').videos
<% @latest_videos.each do |video| %>
<%= raw video.embed_html5({width: '312', height: '240', frameborder: '0', fullscreen: true, modestbranding: "1"}) %>
<h4><%= video.title %></h4>
<% end%>
如果您查看 embed_html5 方法定义,您会看到:
# File 'lib/youtube_it/model/video.rb', line 256
def embed_html5(params = {})
opts = {:class => params[:class] || "",
:id => params[:id] || "",
:width => params[:width] || "425",
:height => params[:height] || "350",
:protocol => params[:protocol] || "http",
:frameborder => params[:frameborder] || "0",
:url_params => params[:url_params] || {},
:sandbox => params[:sandbox] || false,
:fullscreen => params[:fullscreen] || false,
}
...
end
您必须将值为 https
的 protocol
选项传递给 embed_html5
,如下所示:
<%= raw video.embed_html5({protocol: 'https', width: '312', height: '240', frameborder: '0', fullscreen: true, modestbranding: "1"}) %>
这应该可以解决!
我正在使用 youtube_it gem 将精选的 YouTube 视频加载到我的网站上,它在开发中运行良好,但在部署到产品时我在 Chrome 控制台中收到混合内容错误,因为视频是通过我的 HTTPS 域上的 HTTP 传输的。
我不知道如何更改 embed_html5 方法来删除协议。
这是我的代码
@latest_videos = yt_client.videos_by(:user => 'foobar').videos
<% @latest_videos.each do |video| %>
<%= raw video.embed_html5({width: '312', height: '240', frameborder: '0', fullscreen: true, modestbranding: "1"}) %>
<h4><%= video.title %></h4>
<% end%>
如果您查看 embed_html5 方法定义,您会看到:
# File 'lib/youtube_it/model/video.rb', line 256
def embed_html5(params = {})
opts = {:class => params[:class] || "",
:id => params[:id] || "",
:width => params[:width] || "425",
:height => params[:height] || "350",
:protocol => params[:protocol] || "http",
:frameborder => params[:frameborder] || "0",
:url_params => params[:url_params] || {},
:sandbox => params[:sandbox] || false,
:fullscreen => params[:fullscreen] || false,
}
...
end
您必须将值为 https
的 protocol
选项传递给 embed_html5
,如下所示:
<%= raw video.embed_html5({protocol: 'https', width: '312', height: '240', frameborder: '0', fullscreen: true, modestbranding: "1"}) %>
这应该可以解决!