Cloudflare の auto-minify のため、Admin にアクセスできません

こんにちは。

以下のページに従ってDiscourseのプラグインを作成しようとしましたが、サーバーにpluginsフォルダーをアップロードした後、Discourseの管理ページにアクセスできなくなりました。

ブラウザのコンソールを確認したところ、以下のエラーが表示されています。
エラー:admin という名前のルートがありません

SSHでユーザーのロールを確認したところ、管理者権限があることを確認しました。discourseからpluginsフォルダーを削除しようとしましたが、問題は解決しませんでした。

この問題について、どなたか助けていただけますでしょうか?

よろしくお願いいたします!

開発環境で管理者になろうとしていますか、それとも本番環境で管理者になろうとしていますか?

本番環境の場合は、以下を実行できます。

cd /var/discourse
./launcher enter app
rake admin:create

開発環境の場合は、discourse ディレクトリから ./bin/rake admin:create を実行できるはずです。

サーバーOSの管理者/root権限と、Discourse内の管理者権限は、まったく別のものです。

このコマンド ./launcher enter app を使用してアクセスを変更しようとしましたが、うまくいきませんでした。
あ、Discourse で管理者アクセス権があるということです。

サーバーに直接プラグインをアップロードしたということですか?

Discourse はプラグインの JavaScript アセットをコンパイルする必要があります。まず、プラグインを GitHub リポジトリにアップロードし、app.yml を編集して追加してから ./launcher rebuild app を実行してください。

コンパイルせずにプラグインを直接 plugins フォルダにアップロードすると、Discourse のフロントエンドがコンパイル済みファイルを見つけられず、エラーが発生します。

また、サーバーで Cloudflare を有効にしている場合は、自動ミニファイをオフにし、キャッシュを削除することを忘れないでください。

「いいね!」 3

Hi @Lhc_fl

ご協力いただきありがとうございます。Cloudflare の自動ミニファイをオフにすることで解決しました。

Discourse は初めてなので、プラグインの使い方がよくわかりません。そのため、plugins フォルダにプラグインを追加しようとしましたが、あなたが提案してくれた GitHub にプラグインをアップロードし、GitHub リポジトリから取得する方法がうまくいきました。

もう一つ質問してもよろしいでしょうか?トピックにカスタムフィールドや追加フィールドを追加する方法を教えていただけますか?実際、トピックの機能を強化するプラグインを作成したいと考えています。トピックのカスタムフィールドを追加し、そのデータをデータベースに保存して、トピックの詳細ページにレンダリングしたいのです。

改めて、ありがとうございました!

新しいトピックを開始してください。質問自体が広すぎて具体的な回答ができませんが、Developing Discourse Plugins - Part 1 - Create a basic pluginとその続きをご覧ください。topic_custom_fieldsの作成とシリアライザーへの追加について検索すると良いでしょう。すべてのプラグインを取得するには、GitHub - discourse/all-the-plugins を参照し、それらの中から例を検索してください。

カスタムフィールドが必要な理由についてもう少し詳しく説明していただけると、プラグインなしでカスタムフィールドなしでそのタスクを達成できる別の方法があるかもしれません。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.