ホームページ > 記事 > ウェブフロントエンド > Django が CSS ファイルを変更したのに変更が反映されない場合はどうすればよいですか?
解決策: 1. 「settings.py」ファイルで「STATIC_URL」と「STATIC_ROOT」を正しく設定します; 2. 「python manage.pycollectstatic」コマンドを実行します; 3. gunicorn と nginx を再起動します。
このチュートリアルの動作環境: Windows 7 システム、CSS3&&HTML5 バージョン、Dell G3 コンピューター。
Django をサーバーにデプロイした後、ローカル側の Web サイトへのすべての変更をサーバー側で同期する必要があります。この記事を書く前は、ソース コードを同期しておけば十分だと思っていましたが、予想していませんでしたが、今日問題が発生しました。
main.css ファイルを変更した後、git を介して Web サイトを同期したところ、コードはサーバーに正常に同期されました。いくつかの検索と探索の後、css などの静的ファイルを変更する正しい方法を見つけました...
最初に行う必要がありますプロジェクトの下の設定を変更してください。.py ファイルは STATIC_URL と STATIC_ROOT で正しく構成されています:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR,'static/')
引用符内の "/" に注意してください。/" を 1 つ増やすか 1 つ減らすと、変更が有効になるまでの変更。これは、ここに余分な 1 つがあるためです。「/」が逆転しています。では、これら 2 つのパラメータは何を意味しますか?
STATIC_ROOT は絶対アドレスです。Django がデプロイされている場合にのみ使用されます。対応するフォルダーは、1 つの Django に複数の APP が存在する可能性があるため、プロジェクト内のさまざまな場所から収集された静的ファイルを保存します。これに応じて、各 APP には独自の静的ファイルが存在する可能性があります。各 APP の静的ファイルは、nginx による統一使用のためにまとめられています。 . . では、これらのファイルを誰が収集するのでしょうか? この問題については、2 番目のステップで説明します。
STATIC_URL の機能は、ブラウザが静的ファイルにアクセスできるようにすることであり、マッピング関数として機能します。デフォルト設定は "/static/"
ローカル CSS ファイルがサーバーに同期された後、対応する APP の下の静的フォルダーにのみ同期されますが、nginxなど。呼び出されるのは、設定した STATIC_ROOT フォルダー内のファイルです。そのため、コードの同期後、次の非常に重要な操作を実行する必要があります:
python manage.py collectstatic
このコードを実行すると、変更したばかりの main.css ファイルは次のようになります。 Web サイトのルート ディレクトリにある静的ファイルにそれを収集し、nginx がそれを呼び出すまで待ちます。 gunicorn と nginx ですが、再起動しなくても有効になります。有効にならない場合は、この手順を実行することをお勧めします。
# 查看gunicorn进程ID pstree -ap | grep gunicorn # 重启进程 kill -HUP ID
以上がDjango が CSS ファイルを変更したのに変更が反映されない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。