阅读 UrlHelper.absolute 的当前实现:
看起来当 CDN 为 nil 时(这正是您的情况),它会通过拼接 Discourse.base_url_no_prefix 和参数来构建 URL。
所以问题在于,Discourse.base_url_no_prefix 在多站点环境中是否总是返回第一个主机?
查看代码 ![]()
第 288 行变量名 current_hostname 强烈暗示它已考虑到多站点场景 ![]()
再看这里:
看起来确实如此。目前看来是个死胡同…
再看看其他地方,这个路由之所以有特殊处理,是因为浏览器非常喜欢频繁访问它,而我们不能将其放到 CDN 上把问题甩给别人。在这样做的时候,我们曾遇到过涉及多站点泄露的 bug,该问题已在一年前由 @sam 修复:
是否存在这样一种可能性:您部署该多站点集群的方式以类似 2018 年初我们遇到的那种“泄露式”缓存方式缓存了这个路由?
