gpt4 book ai didi

ruby-on-rails - asset_host 和相关协议(protocol) URL 被更改为 http

转载 作者:行者123 更新时间:2023-12-03 14:59:42 26 4
gpt4 key购买 nike

我的应用程序 (Rails 4.0.0) 的某些元素可通过 http://和 https://连接使用,因此我将我的 asset_host 配置为使用相对协议(protocol) url (//),这应该允许浏览器切换到它希望从中获取 Assets 的协议(protocol)。

config.action_controller.asset_host = "//assets%d.mydomain.com"

这在我几乎所有的应用程序中都运行得非常好,但是我有一个特殊的情况,即 Rails 似乎使用 http://而不是相对协议(protocol) url//来输出主机。

这似乎只发生在我的生产环境中,并且只发生在从我的 LESS/CSS 文件中引用 Assets 时,而不是在使用 stylesheet_link_tag 包含文件本身时。

我在 View 中如下引用我的 SASS 文件:

<%= stylesheet_link_tag "public/application", :media => "all" %>

在我的 SASS 中,我引用了如下字体:

@font-face {
font-family: 'OpenSansLight';
src: font-url('opensans/OpenSans-Light-webfont.eot');
...

包含已编译 CSS 的链接标记使用我的友好相对协议(protocol) URL 看起来符合预期:

 <link href="//assets0.mydomain.com/assets/public/application-2c651fbc049aa23457c551d71e475420.css" media="all" rel="stylesheet" />

然而,在已编译的 CSS 中,对字体的引用已从相对协议(protocol) URL 更改为 http>

@font-face {
font-family:'OpenSansLight';
src:url(http://assets0.mydomain.com/assets/opensans/OpenSans-Light-webfont-7f46c9d03142a572bb5969aa55dc54de.eot)

这会导致浏览器中出现不安全内容警告,导致 IE 根本无法加载字体,而 Chrome 和 FF 之类的浏览器会向用户显示警告。

对于为什么会发生这种情况,我想不出任何解释。任何建议都会被大大接受。

最佳答案

好吧,经过长时间的挖掘,似乎在部署期间我的 Assets 编译在某个时候失败了,留下了旧版本的 Assets ,它是用 http 值硬编码的。

因此,提供的是这个而不是包含我的相关协议(protocol) URL 的那个。

在强制 Assets 重新编译并确保它们成功完成后,一切如我所料。

关于ruby-on-rails - asset_host 和相关协议(protocol) URL 被更改为 http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com