💬
ActionCable + WebSocketで実装したチャット機能でJavaScriptのファイルが読み込まれない問題
開発環境
- macOS
- VSCode
- Rails 7.1.3.3
- ruby-3.2.3
- PostgreSQL 16.2
行いたいこと
-
ActionCable + WebSocketで実装したチャット機能でJavaScriptのファイルが読み込まれ、メッセージを送信する挙動が正しく行えるようにしたい。
起こっている問題
-
app/javascript/channels/room_channel.jsを修正しても挙動が全く変わらない。このファイル自体を削除してもチャット機能でメッセージが送信できてしまう。 - 本来ならばこのファイルに記載されている
DOMContentLoadedがブラウザの挙動で発火してroom_channel.rbのspeakアクションに進むようになっている。
原因
-
rails assets:precompileのコマンドを実行をした。これによりpublic/assetsファイルが作成され、優先的に読み込まれてしまっていた。 -
app/javascript/channels/room_channel.jsを修正しても、読み込まれるのはpublic/assetsなので修正、削除しても挙動に変化がなかった。
assetsファイルの削除
・publicディレクトリにあるassetsファイルを削除する
・ターミナルからコマンドでpublic/assetsを作成したので、削除もコマンドで行う。
・rails assets:clobber(削除コマンド)
ターミナル
$ rails assets:clobber
Discussion