結論
cssファイルをdjangoプロジェクトのstaticディレクトリに配置してテンプレートhtmlから読み込んでいた場合、static内のファイルを読み込める場所に配置しなおす必要があります。以下の手順で解決しました。
-
config/settings.py
に以下の記述があることを確認します。1settings.pySTATIC_ROOT = os.path.join(BASE_DIR, 'static')
- djangoプロジェクトの仮想環境内のbashで以下のコマンドを実行します。
python manage.py collectstatic
- pythonanywhereのwebのメニューにある「Reload」をクリックします。
実際に起きた不具合
pythonanywhereでdjangoを使用したwebアプリを作成をしました。gitを通じてローカルからcssファイルgithubにプッシュ。pythonanywhere側でcssをプルしてweb画面を確認しました。ところが、cssが反映されていないという不具合が発生しました。
調査
以下の記事を参考にしました。
staticファイルはgitからpullしてきたディレクトリを参照しているわけではなく、configで設定したディレクトリを参照しているようです。その設定したディレクトリにstaticのファイル群を配置するためpython manage.py collectstatic
が必要なのだと理解しました。
終わりに
staticファイルに入れているファイルが該当するため、jsファイルで同様の現象が起こった場合も参考になるのではないかと思います。
以上です。
参考
-
ローカル環境に記述が無かったとしてもanywhere側が自動で記述していることもあります。 ↩