0
0

More than 3 years have passed since last update.

Django本番環境(heroku)でcssが文字化けして読み込まれなかったのをなんとか直した

Posted at

バグの内容

Djangoで作ったアプリケーションをherokuでデプロイしたらブラウザによってはcssが全く読み込まれなかった。
cssが読み込まれたブラウザ->MacOS版Chrome,Android版Chrome
読み込まれなかったブラウザ->Mac版Safari,ios版Safari,ios版Chrome

バグの原因

cssが読み込まれなかったブラウザで開発ツールを用い、htmlファイルのlinkタグに貼ってあるcssファイルの中身を見ると文字化けしていた。
heroku run bashで本番環境に入り、collectstaticでできたフォルダ内を覗くとcssファイルが圧縮されたcss.gzファイルがあった。
試しにcss.gzファイルの中身をcatコマンド見てみると文字化けしており、開発ツールで見た文字化けと完全に一致していた。
このことからhtmlファイルのリンクが解凍前のcss.gzファイルにつながっていることが原因だと考えられる。

対処方法

解凍後のcss.gzファイルにリンクを繋げられたら一番よかったのだがやり方がわからなかったので(知ってる人教えてもらえたら幸いです!)そもそもgzファイルを生成しない設定にした。
コードは

settings.py
django_heroku.settings(locals(),staticfiles=False) 

このようにdjango_heroku.settings()関数の第二引数にstaticfiles=Falseを追加するだけでいい。
これでgzファイルが作られなくなります。
そもそもgzファイルがなんのためにあるのかよくわからないのでデメリットは感じられません。
通信速度が早くなるのかな?
とりあえず僕の環境ではこれで改善したので同じバグが起きてる人のお役に立てれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0