混合内容:页面“<URL>”是通过 HTTPS 加载的,但请求了一个不安全字体“<URL>”。此请求已被阻止;内容必须通过 HTTPS 提供
并且有 40 个来自 discourse-fonts gem 的字体请求。这是一个全新的安装,Postgres 和 Redis 运行在本地网络内的独立服务器上,连接是“套接字”连接,但当然是通过 HTTPS 对外提供服务的。有类似 的帖子,但对我来说没有明确的答案。检查 CSS 指向 wizard.scss(源映射)。有什么线索吗?
混合内容:页面“<URL>”是通过 HTTPS 加载的,但请求了一个不安全字体“<URL>”。此请求已被阻止;内容必须通过 HTTPS 提供
并且有 40 个来自 discourse-fonts gem 的字体请求。这是一个全新的安装,Postgres 和 Redis 运行在本地网络内的独立服务器上,连接是“套接字”连接,但当然是通过 HTTPS 对外提供服务的。有类似 的帖子,但对我来说没有明确的答案。检查 CSS 指向 wizard.scss(源映射)。有什么线索吗?
您是否启用了“强制 HTTPS”设置?
嗯,我也不知道。我什么都没改。只是常规的 launcher build app。这些 URL 似乎在处理过的 CSS 中,我显然没有以任何方式触碰过(也没有触碰过 scss)。我在 app.yml 中也没有找到任何与 https 相关的内容,所以……不知道。force_https 似乎解决了这个问题。
FORCE_HTTPS 会告知 Discourse 重写请求。
即使您在容器外部执行 SSL 封装,也需要它来避免您描述的问题。
这取决于我们如何定义“必要”。目前,可能需要解决实际问题,即编译后的 CSS 文件显式地使用 http 协议引用静态资源。但恕我直言,从长远来看,这不应该是必要的。
必要,因为这是 FORCE_HTTPS 的目的——这样你就可以告诉 Discourse 它正在被安全地提供服务,并相应地重写链接。
那么,哪些因素/条件会影响资源的(JS/CSS)URL协议HTTP/HTTPS?
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
在这种情况下,如果您启用了force_https,并且您请求的域名没有安装证书,您将最终遇到所有资源URL错误R_SSL_PROTOCOL_ERROR。然后,为了避免这种情况,您需要为该域名安装证书以解决SSL协议问题。
force https在管理员界面中是不可见的。如原始帖子所述,在我的情况下,证书和其他一切都是正确且有效的,但所有到外部的连接都由反向代理(显然是 nginx ;-))处理,而到 discourse 的连接则通过 unix 套接字进行。这意味着我使用的是
templates/web.socketed.template.yml
而不是你提到的任何一个。尽管如此——这不应该导致静态 URL 硬编码显式的 http: 方案。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.