启用欢迎横幅设置的难度

有人能帮我理解一下吗?我觉得我遗漏了什么非常明显的东西,因为我期望这个设置能反过来工作。

描述中写道:

在您的主主题列表页面上显示一个横幅,以欢迎成员并允许他们搜索网站内容

这就是为什么我期望:

勾选复选框 → 显示欢迎横幅
取消勾选复选框 → 不显示横幅

但实际情况却恰恰相反:

1 个赞

这太奇怪了……我这里无法重现。你是不是不小心还安装着旧组件?

1 个赞

我不这么认为

顺便说一句:大约五分之一的情况下,切换设置会按预期工作,但通常不会。

2 个赞

@yuriy 你有什么想法可能导致这种情况吗?

这是一个由 Discourse 托管的网站

我在 Foundation 上进行了复现,没有任何组件

1 个赞

我感觉我最有可能看到的是更新时对应的配置。我20小时前启用了横幅,16小时前有一次更新。然后我遇到了移除横幅的麻烦。不过,在某个时候,情况有所好转(8小时前又有了一次更新)。现在我几乎无法让横幅显示出来。因此,即使启用了该设置,它也经常不显示。

此外,启用和快速禁用(或反之亦然)似乎会导致问题。

我们的开发人员已确认存在问题;他正在调查。请耐心等待。

1 个赞

在应用中刷新后,这种情况仍然存在,这很奇怪 :thinking: 当我们在服务器上保存这些值时,我们会向客户端发送一个 MessageBus 消息,这应该会更新响应式 UI:

但感觉你的设置在这里被错误地切换了 true/false?如果你在站点的 rails 控制台中执行此操作,你会看到什么?

SiteSetting.theme_site_settings

你会看到类似这样的内容,数字代表主题 ID:

{1=>:enable_welcome_banner=>:false, :search_experience=>"search_icon"},
 -1=>:enable_welcome_banner=>:false, :search_experience=>"search_icon"},
 -2=>:enable_welcome_banner=>:false, :search_experience=>"search_field"}}

尝试切换它,看看会出现什么值(每次更改值时都需要关闭/重新打开 rails 控制台)。

然后你可以试试这个:

SiteSetting.theme_site_settings_json(THEME_ID)

将 THEME_ID 替换为出现问题的那个。

编辑:啊,我没意识到这是一个托管站点,我可以看看 :eyes:

2 个赞

在您的托管网站上的主题上,它似乎运行正常。不过,这很有趣:

也许我们继续观察一下,看看是否还会发生?如果您想进一步讨论托管网站的具体细节,也欢迎您与我开始私信。

我又弄坏了。不确定它何时会自行修复

在 Foundation 中,它已启用但不可见,而在默认主题中,它已禁用但可见

我刚登录了您的网站,在默认主题上没有看到它,并且在 /admin/customize/themes/1 中看到它已禁用。我将其打开然后关闭,它在另一个标签页中显示然后隐藏了。

在 Foundation 主题上也看不到它,但它在管理员设置中已启用。请稍等,我看看是否能找到问题。

真有意思。我登录为测试用户时也能看到它。也许它已经自行修复了。

好的,我刷新了一下,它自己也在这里修复了,什么都没做 :thinking:

我们在这里为每个单独的主题缓存主题站点设置,缓存时间为 30 分钟:

但是,这 应该 在您更改任何主题的站点设置时清除:

所以也许存在某种边缘情况导致这种情况没有发生?

1 个赞

三小时前,我重新启用了默认主题上的横幅,看看在下次更新后会发生什么。它当时在那里,但现在又消失了。设置仍然是启用的。

感觉它仍然偏好网站更新时的状态

编辑:现在横幅回来了

编辑2:它消失了

编辑3:它回来了

编辑4:消失了

编辑5:回来了

3 个赞

谢谢 Moin……这完全出乎意料,据我所知,你是迄今为止唯一遇到这个问题的人。我会为自己创建一个测试站点,进行更改 + 部署,看看是否能重现此问题,也许这有助于追踪它。

这确实感觉像是一个缓存问题,尤其是你说 UI 本身在翻转,但你在管理员那里可以看到设置仍然是启用的。

1 个赞

第一个更改似乎尤其不起作用。
昨天我在 Foundation 上启用了横幅,大约 25 分钟后横幅就可见了。这大约是您提到的 30 分钟。
现在我再次尝试。我在 Foundation 上禁用了它,它消失了,但在重新加载后又出现了。而且不仅仅是我的用户有问题;我总是使用测试用户在私密标签中进行测试。但即使过了 30 分钟,它仍然存在。

更新:现在它消失了。所以花了大约一个小时

1 个赞

我不确定这是否是因为您发布此消息后过去了 30 分钟:

image

或者因为我在您的网站控制台中执行此操作而以某种方式更改了状态:

SiteSetting.theme_site_settings_json(-1)
=> "{\"enable_welcome_banner\":false,\"search_experience\":\"search_field\"}"

但是的,我看到它是可见的,在控制台中运行了它,然后它就消失了 :sweat_smile: 所以这绝对感觉像是一个缓存问题……

1 个赞

到目前为止,我仍然无法在我自己托管的网站上重现它,即使是通过部署。这真是一个棘手的问题!

我不知道这是否相关,但在主题化网站设置发布时,我禁用了“启用欢迎横幅”。因此,该值与默认设置不同。也许这就是区别?如果您现在创建一个论坛,该值将没有历史记录,它将只是默认值。