摘录在 50 个字符处截断

我曾让主题摘要按预期工作——也就是说,它们在所有情况下都遵循 post_excerpt_maxlength 设置。我最初是通过一个插件实现这一点的(该插件有效),后来了解到 SiteSetting.always_include_topic_excerpts = true,于是切换到该设置。它仍然有效。

大约两天前,或许是在应用 2.4.0.beta4 之后,摘要开始被截断为 50 个字符。非常奇怪。

我尝试过切换 SiteSetting.always_include_topic_excerpts 设置、重新安装插件,以及修改 post_excerpt_maxlength 的值,但都没有变化。仍然被限制在 50 个字符。

其他人也遇到这个问题了吗?不知道还能尝试什么其他方法。

这会不会是一个 bug,@neil

另一个问题是,这仅影响新主题。较旧的主题(带有较长的摘要)仍然保留摘要。

向此类主题添加帖子并不会缩短摘要(这并不意外),但编辑第一个帖子确实会导致摘要重新在 50 个字符处被截断。

因此,虽然我还没有深入查看(Discourse 新手),但摘要似乎是一个数据库字段,而截断仅发生在记录更新时。

LQ

您链接的插件中硬编码了 50:

https://github.com/hnb-ku/discourse-topic-excerpt-plugin/blob/master/plugin.rb#L8

您可以分叉该插件,将 50 替换为 SiteSetting.post_excerpt_maxlength,或者让 @Johani 为您更新。

该插件已近两年未更新,且早于 always_include_topic_excerpts 设置的引入。您根本不应再使用它。我已添加弃用通知,并将在大约一周后删除该仓库。

请移除该过时插件,启用 always_include_topic_excerpts 设置,并反馈您是否仍遇到相同问题。

这似乎有效。我之前被误导了,因为应用该插件后,我得到了想要的(300 字符)摘要,而之前完全没有。我推测只有随后创建的主题才表现出硬编码的 50

一个小问题:已有 50 字符摘要的现有主题仍然保留这些摘要。似乎需要编辑这些主题的原帖(OP),才能将其摘要长度扩展为 post_excerpt_maxlength。有什么方法可以自动化这个过程吗?谢谢。

LQ

您需要重新烘焙帖子,以便它们遵循新的限制。更多信息请在此查看

如今这两者真的可以互换使用吗?

rake posts:rebake

bundle exec rake posts:rebake

因为第一个 rake 任务顺利执行,但并未重新生成摘要。不过,站点仍在运行。

随后尝试使用 be。结果退出并显示:

rake aborted!
PG::ConnectionBad: FATAL:  Peer authentication failed for user "discourse"

……随后是堆栈跟踪。现在,主题页面无法访问。首页可以访问,大部分管理后台也可访问——但管理首页上的图表无法加载。运行 …

rake posts:rebake

……也无法解决问题。最终重启了 Droplet,但问题依旧。任何帮助都将不胜感激。

LQ

是的,我刚刚测试了两种方式

$ cd /var/discourse
$ ./launcher enter app
$ bundle exec rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!
--------------------------------------------------
$ cd /var/discourse
$ ./launcher enter app
$ rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!

两者都能正常运行,没有任何问题。

这表明你还有其他问题。在搭建站点时,你是否遵循了支持的安装指南

是的。完全按照 INSTALL-cloud.md 中的说明进行了安装。

唯一的区别是系统版本为 19.04。我没有手动更新过任何 gem 或其他类似操作。

以下是 bundle exec rake posts:rebake --trace 的完整输出:

我不敢肯定,但我觉得你可能遇到了两个独立的问题。

尝试以下步骤以进一步缩小问题范围:

  • 移除所有非官方插件
  • 重新构建应用
  • 尝试 安全模式,查看应用是否能正常加载

在出错的页面上,你的浏览器控制台是否显示任何错误?

已移除脚注和复选框插件。不确定这些是否为官方插件。已重新构建。在非安全模式加载下控制台无错误。站点已恢复。

测试安全模式以检查控制台错误是否有任何益处?如果没有,那看起来就是这些插件的问题之一。

是的,这些是官方的,但请确保你没有使用某种分支版本。官方插件在管理界面中名称旁边会有一个勾选标记

并且托管在 https://github.com/discourse/ 下。

我刚刚在最新版本上测试了这两个插件,无法复现你遇到的问题——即网站无法加载。

如果在正常(非安全)模式下没有错误,那么就不需要在安全模式下检查了。

我猜摘要部分还没有更新?

你检查过 your.site.com/logs 吗?

没有,但这是一个较新的实例。我就不管它了。

是的,没什么特别的。我启用了 unattended-upgrades,看起来 dpkg 可能在重新构建时正在运行。不必担心。

感谢帮助。

LQ