📋 はじめに
記事を書く目的
- アウトプットの練習
- 自分のためのナレッジ
- 同じ事象で困ってる人の参考になればうれしいです
💡この記事の結論
先に結論を書きます。
詳細を知りたい方は読み続けていただければとおもいます🙇♀️
<問題だったこと>
- プラグインのアセットファイル(JS/CSS)が
public/plugin_assets/easy_gantt/
に生成されていなかった
<解決方法>
- アセットファイルを所定の場所に配置
- アプリケーションの再起動
🔍詳細
🤔なにがあったの?
- Redmineは正常に動作しているが、EasyGanttプラグインの画面だけが表示されない
- ブラウザのコンソールで多数の404エラーが発生
(ほとんどがプラグイン関連のJS/CSSファイルが見つからないというエラーメッセージ)
👀問題が発生したときの状況
直近で、以下の対応を行った後の出来事でした
- オンプレミス環境から AWS EC2 へのRedmine移行を実施した
- 移行時にバージョンアップも同時に行った(4.0.x系 → 6.0.x系)
- 移行作業の中でプラグインの対応は時間の関係で後回しにしていた(←あ。)
🧐 原因分析
調査の結果、次の原因が判明しました
アセットファイルが不足してた:
- プラグイン自体は正しくインストールされている
- しかし、プラグインのアセットファイル(JS/CSS)が
public/plugin_assets/easy_gantt/
に生成されていない状態
なんで?:
- 移行作業時にプラグインアセットの手動コピーが必要だったが、それが行われなかった可能性が高い
🛠️ 解決手順
1. Redmineルートディレクトリの確認
# Redmineのルートディレクトリを確認
ls -la /path/to/redmine
# 実際のRedmineディレクトリ: /path/to/redmine-6.0.x
2. アセットのプリコンパイル
# Redmineディレクトリに移動
cd /path/to/redmine-6.0.x
# アセットのプリコンパイル(適切な権限で実行)
RAILS_ENV=production bundle exec rake assets:precompile
3. プラグインアセットディレクトリの作成とファイルコピー
# プラグインアセットディレクトリを作成
mkdir -p public/plugin_assets/easy_gantt
# アセットファイルをコピー
cp -R plugins/easy_gantt/assets/* public/plugin_assets/easy_gantt/
# 適切な権限を設定
chmod -R 755 public/plugin_assets/easy_gantt/
4. アプリケーションサーバーの再起動とキャッシュクリア
# unicornの場合の再起動(PIDは環境によって異なります)
kill -HUP `cat tmp/pids/unicorn.pid`
# または
kill -HUP <プロセスID> # プロセスIDを指定
# キャッシュのクリア
RAILS_ENV=production bundle exec rake tmp:cache:clear
5. 動作確認
- ブラウザのキャッシュをクリアしてRedmineにアクセス
- EasyGanttのページを開いて正常表示を確認
💡 まとめ
EasyGanttプラグインが表示されない問題は、主にアセットファイルの配置に関する問題です。
特に、Redmineの移行時には、プラグインのアセットもしっかり再配置しましょう🫠
いじょう!
同じような問題で悩んでいる方の参考になれば幸いです。