💬
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