关于apache:Rails请求对象包含错误的协议

Rails request object contains wrong protocol

我正在Apache和最新的Passenger 3.0.11上运行Rails 3.1.2。 我在一些应用程序操作中使用force_ssl要求安全连接。

Web浏览器警告说,尽管站点的身份已经过验证并且连接已加密,但是页面包含其他不安全的资源。 罪魁祸首是对通过纯http制作的Google Fonts API的引用。 我的视图包含以下内容:

1
= stylesheet_link_tag"#{request.port}fonts.googleapis.com/css?family=Oswald"

我也尝试过这个:

1
= stylesheet_link_tag"http#{request.ssl? ? 's' : ''}://fonts.googleapis.com/css?family=Oswald"

两者都会导致样式表网址中包含" http://"。

我在Rails 3.0.5 / Passenger 3.0.7 / SslRequirement中成功完成了此操作,但无法在Rails 3.2.1 / Passenger 3.0.11 / force_ssl中工作。


将" //fonts.googleapis.com/css?family=Oswald"不带http或https放置-这样,浏览器将使用与您所在页面相同的协议,并且不会显示任何警告。