抜粋が50文字で切り捨てられる

トピックの抜粋は期待通りに動作していました。つまり、すべてのケースで post_excerpt_maxlength を反映していました。最初は プラグイン で実装し(これは動作しました)、その後 SiteSetting.always_include_topic_excerpts = true の存在を知り、そちらに切り替えました。これも問題なく動作していました。

約 2 日前、おそらく 2.4.0.beta4 を適用した後に、抜粋が 50 文字で切り捨てられるようになりました。非常に不可解です。

SiteSetting.always_include_topic_excerpts の切り替え、プラグインの再インストール、post_excerpt_maxlength の値の変更を試みましたが、変化はありません。依然として 50 文字で固定されたままです。

他の方にも同様の現象が見られますか?他に試せることが思いつきません。

これはバグでしょうか、@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 に更新してもらうことができます。

そのプラグインは約 2 年間更新されておらず、always_include_topic_excerpts 設定の追加以前に作成されたものです。使用すべきではありません。非推奨の通知を追加し、1 週間ほどでそのリポジトリを削除する予定です。

古いプラグインを削除し、always_include_topic_excerpts 設定を有効にした上で、問題が解消されたかどうかをご報告ください。

これで問題が解決したようです。以前は抜粋が表示されていなかったのに、プラグインを適用すると(300 文字の)希望する抜粋が表示されたため、混乱していました。おそらく、ハードコードされた 50 の影響を受けたのは、その後作成されたトピックだけだったのでしょう。

ただ一点、気になる点があります。既存のトピックで 50 文字の抜粋になっているものは、そのまま残っています。これらを post_excerpt_maxlength に合わせるには、それらのトピックの OP(最初の投稿)を何らかの方法で更新する必要があるようです。これを自動化する方法はありませんか?よろしくお願いします。

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

デフォルトの投稿マークダウンを再構築中
      297 / 297 (100.0%)
297 件の投稿が完了しました!
--------------------------------------------------
$ cd /var/discourse
$ ./launcher enter app
$ rake posts:rebake

デフォルトの投稿マークダウンを再構築中
      297 / 297 (100.0%)
297 件の投稿が完了しました!

これは、他に問題があることを示唆しています。サイトをセットアップする際に、サポートされているインストールガイドに従いましたか?

はい。INSTALL-cloud.md に記載されている通り、正確にインストールしました。

唯一の違いは、OS が 19.04 であることです。gems を手動で更新したり、そのようなことは何も行っていません。

以下が bundle exec rake posts:rebake --trace の完全な出力です。

はっきりとは言えませんが、おそらく2つの別々の問題があると思います。

これをより詳しく特定するために、以下の手順を試してみてください。

  • 非公式のプラグインをすべて削除する
  • アプリを再構築する
  • セーフモードを試して、アプリが読み込まれるか確認する

表示されないページでブラウザのコンソールにエラーが表示されていますか?

フッター注釈とチェックボックスプラグインを削除しました。これらが公式かどうかは確信が持てません。再構築しました。セーフモード以外での読み込み時にコンソールエラーは発生していません。サイトは稼働しています。

コンソールエラーを確認するためにセーフモードをテストするメリットはありますか?なければ、それらのプラグインのいずれかと思われます。

はい、それらは公式です。ただし、何らかのフォーク版を使用していないことを確認してください。公式プラグインには、管理画面で名前の横にチェックマークが表示されます。

また、https://github.com/discourse/ 以下でホストされています。

私は最新のバージョンで両方を試しましたが、あなたが直面している「サイトが読み込まれない」という問題を再現できませんでした。

通常モード(セーフモード以外)でエラーがない場合は、セーフモードでも確認する必要はありません。

抜粋はまだ更新されていないのでしょうか?

your.site.com/logs を確認しましたか?

いいえ、でもこれは新しいインスタンスなので、気にしません。

はい、特に目立ったことはありません。unattended-upgrades を実行していますが、dpkg が再構築時に実行されていたかもしれません。気にしません。

お手伝いいただきありがとうございます。

LQ