预置帖子全部缺失 - 缺少服务条款、常见问题和隐私页面

您好,任何点击我的服务条款、常见问题或隐私页面的人都会看到一个空白页面,并且鼠标指针会一直显示为“忙碌”状态并持续旋转。

我该如何修正这个问题?

我该如何让这些信息可用,并让任何访问网站网址但尚未注册密码保护访问的潜在用户注意到这些信息?

目前,访客看到的只是作为落地页的基本登录对话框,在注册之前,他们完全无法了解该论坛是否与他们的需求相关,或适用哪些条件。

现在网站和邮箱已在论坛域名上设置完成并正常运行,我不愿冒险通过重定向域名到另一个独立托管的网页作为主页,或将论坛移至子域名等方式来搞乱一切——尽管这些方法曾被建议过。同时,我也不愿每年花费 47 美元购买一个付费插件,只为在域名落地页上添加稍多一点信息。

这些真的是我仅有的选择吗?

1 个赞

这就是我们不建议将 Discourse 部署在根域名下,而是部署在子域名(如 discuss.example.com)下的原因。

3 个赞

作为一个令人不悦且不够美观的权宜之计,我添加了一份指南,旨在帮助那些考虑注册的用户,方法是自定义登录对话框本身的文本。

如果我咬紧牙关将论坛迁移到子域名,作为一个新手,我应该预期会遇到多少麻烦:

  1. 在主域名上设置一个着陆页,并且该页面也托管在我的 Digital Ocean Droplet 中?(这样我就不必为另一项服务付费)
  2. 确保通过 Mailgun 的进出邮件以及所有功能继续不间断运行?

一个背景问题是,我更希望从管理员仪表板内管理和更新着陆页的内容,并将其包含在自动备份中。如果不使用相同的域名,更不用说相同的软件,这听起来非常困难。

我真的很希望至少能在 Discourse 的核心功能中提供一些简单的着陆页功能,供那些不需要或不想管理另一个网站的用户使用。

这对已登录用户和匿名用户(未登录用户)都是如此吗?如果是这样,那表明存在一个根本性问题,不应该受域名或子域名调整的影响。

在我们的情况下,我们确实希望将 Discourse 部署在根域名下,因为它是我们要务的核心。因此,我也一直在研究如何最好地优化 /admin/customize/site_texts/login_required.welcome_message 以及该页面的其他元素。

好消息是,您可以在该文本中使用所有常规的 Markdown 等功能;这提供了更大的灵活性。我是通过在 Staff 中创建一个主题编写内容,然后将其复制到自定义部分来实现的。@codinghorror - 对于处于我们这种情况的用户来说,如果能使其行为与常见问题等页面保持一致,将非常有帮助。

此外,您可以使用 Custom Header Links 主题组件(配合一些额外的 CSS)提供隐私页面和服务条款页面的链接(这些页面应对匿名用户可见)。当然,我对这种做法并不满意,我希望匿名用户也能看到常见问题和关于页面(同时保持论坛私密性),因此我请求了一些帮助:

1 个赞

这对登录用户确实如此。未登录的用户除了登录对话框外,无法看到任何其他内容(除非我遗漏了什么?)

很奇怪,登录用户无法访问这些页面。在您的 #admin 分类中,您是否还保留着这些主题所在的帖子?

啊——这可能就是线索。我没有“管理”这个分类。

我之前清理了一些看似为空、且与其他分类区别不大的分类。显然它们并非真的为空。
假设我可以从本站复制这些话题的内容,并在我的网站的一个剩余分类下重新创建它们,我该如何将它们重新链接到各自的菜单项?还是说我直接重新创建“管理”分类即可?

抱歉,我想我指的是 #staff。我也在我们的实例中折腾过,但保存了主题。这些主题分别名为“常见问题/指南”(主题 ID 5)、“服务条款”(主题 ID 4)和“您的论坛名称 隐私政策”(主题 ID 6)。

我怀疑它们有一些特殊之处——无论分类设置如何,只有管理员才能编辑每个主题的首帖。重新创建它们可能会有点棘手。祝你好运!

#Staff 分类从未被删除,但这些主题似乎以某种方式丢失了。

关于这些主题的内容,尤其是“服务条款”和“隐私政策”主题,直接复制我在 Discourse Meta 网站上找到的内容似乎行不通,因为两者都严重偏向特定司法管辖区和上下文,并不适用于我的论坛。是否有更通用的(甚至是适用于新西兰的)来源可供参考?

此外,我确认仅仅添加“管理员”分类并在其中创建“常见问题”主题并没有奏效——常见问题链接仍然只会生成空白页面并显示旋转的鼠标指针。

好的,进一步来看,原常见问题解答(FAQ)中使用的 URL 表明,该 FAQ 主题直接位于名为 ‘faq’ 的子文件夹中——例如:

https://meta.discourse.org/faq#civilized

而如果我创建一个新 FAQ 主题并粘贴内容,URL 则会变成类似这样:

https://nzarchitecture.net.nz/t/faq/15074

我该如何创建正确的子文件夹或将主题放置其中?当我通过 FileZilla 连接到 Digital Ocean Droplet 时,并未看到任何我熟悉的 Discourse 网站内容标准文件夹结构,因此猜测在生成这些 URL/路径时,背后可能涉及某种深奥的 Ruby on Rails 机制。

目前我找到了一个变通方法:在重新创建这些缺失的主题时,使用系统生成的 URL,并将其粘贴到仪表板设置/法律(Settings/Legal)中相关的“替代外部来源”字段。

当然,如果存在可行的方法,我们仍希望将一切整理妥当——毕竟,原始设置损坏或缺失可能会带来其他未知的潜在影响。

这些是内置主题的系统定义项。要将它们恢复到删除前的状态,可能需要进行 PostgreSQL 层面的调整。

1 个赞

谢谢斯蒂芬。遗憾的是,我不知道该如何开始操作 PostgreSQL。

如果这些内容是内置的,或者不包含在任何用户可直接编辑或访问的类别中,我是否本就不应有可能删除它们?

我还注意到,即使那些话题对我而言存在,它们似乎也忽略了在设置过程中提供的“设置/必填字段”信息,例如公司名称、适用法律以及争议解决城市——这说明某些问题在之前就已经存在了。

而且,如果用户根本无法在注册前查看服务条款,那么这一切在法律上可能都变得无关紧要——这或许是对所有受密码保护的 Discourse 论坛而言一个相当根本性的问题?

以下是我们的来源;它本质上只是一个通用的版本,但稍微做了一些针对我们自身/新西兰的本地化调整:

如果您需要原始文本,我可以发送给您。

干杯,Nathan。
有趣的是,我竟然可以在未登录的情况下链接到它,这令人鼓舞。

我非常希望在注册/登录对话框中提供指向常见问题解答、服务条款等页面的有效链接,但到目前为止,对于未注册的用户,所有链接都会返回“您没有权限”的响应。

您可以使用另一种变通方法:
将所有分类仅对信任级别 0(或更严格)的用户可见,除了包含您信息帖子的那个分类(将其设置为对所有人可见)。然后将您的论坛设为公开。当然,这样用户将不再跳转到登录页面,而且这是一种相当激进的方式来实现该目标。

或者,解决根本问题,并和我一起等待上述链接中提到的其他部分的解决方案(https://meta.discourse.org/t/making-the-about-and-faq-visible-to-anon/150043)

谢谢 Nathan。我短暂地考虑过这个方法,但我不太满意所有“安全”主题都对外展示。

请问是否有人能指导如何通过 PostgreSQL 或其他方法恢复内置的法律主题及其 ID(或者至少在对应的原始 URL 处放置空白可编辑帖子)?

仅仅在“员工分类”中创建同名新帖子是行不通的——生成的 URL 会不同,新用户也无法在注册时访问它们(点击注册对话框中的链接只会将他们重定向回登录对话框)。

好的,看来没人能帮忙解决这个问题。那么,从头重建论坛再恢复已保存的数据库备份会有帮助吗?还是说恢复备份只会再次传播这些删除操作?

我想确实会这样,抱歉。

在该数据库的某个地方,有一小部分数据需要修改,才能让那些帖子重新出现。实际上就在这里:

在’topics’表中,ID 为 4、5 和 6 的记录的 deleted_at 字段将包含时间戳。如果你能删除这些值(替换为空),问题就解决了。

我知道可以通过 Ruby/Rails 完成此操作,但这超出了我目前的技能范围——不过对于具备相关技能的人来说,这只需 5 分钟即可完成。或许当初帮你搭建该实例的人可以帮忙。

谢谢 Nathan。
遗憾的是,我是按照官方教程自己搭建的,当时理解得并不透彻。
早些时候曾有一位开发者帮我迁移了一些数据,我一周前联系过他们,但至今仍未收到回复。

不过我在想,是否有一个开源的桌面应用程序,可以连接到 Digital Ocean 上的 PostgreSQL 数据库,并允许查看和编辑数据表?或者,至少能读取和编辑我下载并恢复的备份文件?

** 编辑**:重读类似问题的回复后,大家似乎一致认为,如果要进行任何操作,最好使用 Ruby,而不是那些界面看起来友好的图形化数据库管理工具。

话虽如此,在备份完成后,我应该通过 PuTTY 执行哪些命令来访问数据库,并删除 topics 表中 ID 为 4、5 和 6 的记录的 deleted_at 时间戳?