恐怖のできごと
今日はもう嫌になることが起きたので、解決に至るまでの顛末をご紹介します。
0時間目、なぜか更新されないスタイル
スタイルの修正をして、意気揚々とデプロイしようとした私。しかし…なぜかスタイルが更新されませんでした。なぜかそれ以外は更新されたのに。これが悲劇の始まりでした。
1時間目、キャッシュを削除してみる
Production環境でデプロイしていたので、まずはキャッシュやプリコンパイルしたアセットが悪さをしているのではと考えました。とりあえず起動しているアプリをkillして、一時キャッシュとコンパイルしたスクリプトやスタイルシートを削除。再度作り直すことにしました。しかしなぜかうまく行かない…
2時間目、問題がアプリの設定を見直してみる
キャッシュが悪さをしていないことはわかったので、今度はアプリの設定が間違っていないか見直すことにしました。ちょうどスタイルシートへのリンクとコンパイルされたスタイルシートの名前がずれていたので、どうやらこれはあたりだったようです*1。これで帰れるはず。そう確信しつつスタイルシートを再コンパイル。しかしなぜかうまく行きませんでした。。。このころから「もうやだ」的な独り言が増えてきます。
3時間目、サーバーの設定を見直してみる
さいわいroot権限を持てるようにしてもらっていたので、サーバーの設定を見直すことができました。こちらにたまっていたキャッシュが悪さをしているのかなと思いましたがどうやら違った模様。そもそもキャッシュなんてありませんでした。
4時間目、ログは偉大である
こうなったらエラーログです。丹念にログを見ていくと、原因を突き止めることができました。やっぱり困ったときはエラーログなのでしょうか。ちなみに何が原因かと言うと、サーバー側のプロキシ設定で、静的ファイルの参照先が古いままだったことでした。原因が分かれば対処ができます。新しいものに書き換えて再起動すると、ちゃんと新しいスタイルを読み込んでくれました…長かった…
こんかいのまとめ
他の環境ではデプロイがうまく行っていたので、原因がアプリではなく環境にあるともっと早く気づくべきでしたね。開発環境と本番環境の間にステージング環境を設けておく意味が何となく分かりました。
*1:実際はぬか喜びだったんですけど