前提・実現したいこと
AWSのEC2上に開発環境を作り、CakePHP3でサービスを作っています。
別途Dockerで作ったローカル環境での動作確認は問題なかったのですが、AWSの開発環境でページを表示すると以下のエラーメッセージ(js)が出ました。
main.js:1 Uncaught TypeError: $(...).smartWizard is not a function
これのせいで他のjQueryの処理などが動かなくなっているようでしたのでなんとか解消しようと色々調査しました。
試したこと
######①まず該当箇所のソースをGoogleChromeのデベロッパーツールで見ました。
webroot配下のjs/main.js
の以下の部分でエラーが発生していました。
(jQuery-Smart-Wizardという外部のライブラリを使っています)
javascript
1$("#tag-example").smartWizard({ // ここにエラー:Uncaught TypeError: $(...).smartWizard is not a function 2 //処理・・・ 3});
######②次にソースコードでwebroot配下のjs/main.js
で上記の該当箇所を探しました。
結果、見つかりませんでした、、、
プロジェクト内の全てのファイルを対象にsmartWizard
やtag-example
の文言で探したのですが、一切見つかりませんでした。。
(PHPStormの検索、ターミナルからgrepを使った検索共に見つかりませんでした)
######③次にAWSのEC2にSSH接続してファイルシステムのルート内にある全てのファイルを対象に検索しました。
$ sudo find / -type f -print | xargs sudo grep smartWizard | grep tag-example
すると以下のファイル内に該当のコードが見つかりました。
/opt/codedeploy-agent/deployment-root/xxxxxxxxxxxxxxxx/xxxxxxxx/deployment-archive/webroot/js/main.js
このファイルを調べるとAWSのCodeDeployの過去のデプロイ内容を記録しているアーカイブっぽいことは分かりました。
######④実はブラウザからアクセスしているホストと自分が編集しているホストが別のもので無いか確認
SSHで接続しているEC2インスタンスが、ブラウザからアクセスしているものと異なるところを見ているのでは無いか、と思いwebroot配下のindex.phpを編集してみましたが、確かにブラウザで反映されました。
上記からなんらかの原因でブラウザからアクセスした時に、プロジェクトルート内のwebroot配下のmain.js
ではなくcodedeploy
のアーカイブ内のmain.js
が読み込まれているのでは無いか、という仮説を立てたのですが、そんなことってあるのでしょうか?
こちらに関して、原因・対応策、もしくは上記とは異なる可能性等思いつく方いらっしゃいましたら是非お力お貸し頂けると幸いです。
他に必要な情報ありましたらおっしゃって頂ければと思います。
何卒よろしくお願い致します。
あなたの回答
tips
プレビュー