adopilot
(Admir Hodzic)
1
最近,我将运行时间较长的 Discourse 实例恢复到了新的实例。
我的 Discourse 版本是 3.6.0.beta2-latest。
现在我遇到了上传无法工作的问题。
当我查看浏览器控制台时,我看到很多 net::ERR_SSL_PROTOCOL_ERROR 错误。
当我查看网络选项卡时,我看到 Chrome 正在尝试获取 URL
https://forum.robot.ba:80/uploads/default/optimized/4X/7/2/b/72be8d09005292d2f7ac37158b6d728a063f79ed_2_32x32.png
如果我手动删除端口 80 或将协议从 https 更改为 http,我可以在新的浏览器窗口中手动打开链接。
有什么想法为什么我的 Discourse 实例会在上传路径中添加 :80?
我搜索了站点设置中的强制 HTTPS,但似乎没有启用该设置,或者该设置已不存在。
我的 app.yml 文件中是否存在问题,我有以下模板:
(我想使用 letsencrypt,因为我没有 SSL 证书)
templates:
“templates/postgres.template.yml”
“templates/redis.template.yml”
“templates/web.template.yml”
“templates/web.ratelimited.template.yml”
如果您希望添加 Lets Encrypt (https),请取消注释这两行
“templates/web.ssl.template.yml”
“templates/web.letsencrypt.ssl.template.yml”
您可以通过此指南了解如何使用 Let’s Encrypt 设置 HTTPS:
可能原因:隐藏的“端口”设置
有时,在迁移或还原后,数据库中会保留一个隐藏的 port 站点设置。
这可能导致 Discourse 将不正确的端口(例如 :80)附加到 HTTPS URL。
要检查和修复它:
- 进入您的容器:
./launcher enter app
- 打开 Rails 控制台:
rails c
- 检查当前值:
SiteSetting.port
- 如果返回
80,请将其清除:
SiteSetting.port = ""
- 然后重新烘焙所有帖子和资产以更新链接:
Jobs.enqueue(:rebake_all_posts)
2 个赞