JustinBack
(Justin René Back)
1
今天更新并启用了 envs 中的 S3_CDN_URL 选项后,除了 markdown-it-bundle 加载外,其他一切都正常。
https://tosdr.community/https://tosdr-community.s3.jrbit.de/assets/markdown-it-bundle-5a633717415fd164893a925e4cac1406ecab8179d15637506b08a147ab543433.br.js
虽然服务器上的资源存在并且已上传,但 discourse 仍然会加上基础 URL 前缀。
所有其他资源都运行正常。
我已经检查了 uploads 表,所有 URL 格式都正确。
还有其他表可以查看吗?或者有直接的修复方法吗?
是否有类似于 remap 的 DbHelper,可以用于在整个数据库中搜索字符串?
1 个赞
您是否遵循了使用 S3 设置 Discourse 的指南?根据这个主题,似乎有很多复杂的步骤需要遵循才能进行设置:
1 个赞
恐怕这并非我的专长,但我找到了一个类似问题的帖子,或许能帮上忙?
2 个赞
JustinBack
(Justin René Back)
8
@crcoli7307 是的,这正是我所遵循的主题 
@JammyDodger
谢谢你提供的主题!
所以我把 S3_CDN_URL 改成了:
DISCOURSE_S3_CDN_URL: https://s3.jrbit.de/tosdr-community
但遗憾的是,这破坏了样式表的加载方式。
这会不会是存储桶名称的问题,因为它几乎和域名一样?
存储桶名称:tosdr-community
域名:tosdr.community
看看样式表是如何构建的。
JustinBack
(Justin René Back)
9
已迁移到新的存储桶:存储桶名称不是问题,同样的问题仍在发生
JustinBack
(Justin René Back)
10
更新:我刚刚检查了 markdown-it-bundle 的嵌入方式,并通过 rail 控制台执行了 script_asset_path(由于缺少 request.env 变量,需要稍作修改!)

根据 script_asset_path,资产 URL 生成正确。仍然不确定为什么会发生这种情况。
编辑:
这似乎是一个已知错误
编辑 2:
我通过最肮脏的解决方法“修复”了它。在 nginx 配置中硬编码资产并重定向它
location ~ markdown-it-bundle-dcd9743077867b3a68d7b723130cb2711dc4c843b018d7bc609f868289402fef.(.*).js {
return 302 https://tosdr-forum.s3.jrbit.de/assets/markdown-it-bundle-dcd9743077867b3a68d7b723130cb2711dc4c843b018d7bc609f868289402fef.$1.js;
}
搞定了,除非资产被更新 
1 个赞