#はじめに
転職活動用のポートフォリオを作成中です。非同期いいね機能をjQueryを用いて実装し、ローカル環境で正常に作動したため、本番環境にデプロイしたところ、非同期にならない事象が発生しました。
##前提
Rails '6.0.0'
AWSのACMを使用して、https接続を実装済み
##仮説
はじめにデプロイの方法が間違っているのかと思い、EC2の再起動などを行いましたが、結果は変わらず。しかしここで同期でいいね機能は稼働していたため、非同期の役割をになっているjQueryの読み込みが本番環境ではできていないものと検討をつけました。
##結論
httpsによるSSL暗号通信下の環境でjQueryの読み込みができていなかった。
修正前
app/views/layouts/application.html.erb
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
修正後
app/views/layouts/application.html.erb
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
上記のように修正前はjQuery読み込みのURLをhttpにて記述していたため、反映されていなかった。
##その他の対処法
後々調べてみると、一般的で汎用性が高い方法は、httpの部分(プロトコル)を指定しない方法でした。
app/views/layouts/application.html.erb
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>