Djangoで静的ファイル(static)を利用する

2019年10月29日

Djangoにおいて、画像やCSSなどの静的ファイルを利用してみます。

 

静的ファイルは主にプロジェクト単位とアプリケーション単位において分けることができます。

 

hello_projcectというプロジェクトおよびmyapp1アプリケーションという名前のアプリケーションを作成した前提で説明していきます。

 

関連ページ

テンプレート(templates)を利用する

 

 

アプリケーション単位での静的ファイル


 

まずアプリケーションであるmyapp1ディレクトリの下にstaticディレクトリを作成し、更にアプリケーション名と同じmyapp1ディレクトリを作成、style.cssを適当に記述し配置します。

 

myapp1/static/myapp1/style.css

 

適当な画像も用意し配置します。

 

テンプレートを下記のように編集します。

 

myapp1/templates/myapp1/index.html

以上でCSSが反映され、画像も表示されていることが確認できます。myapp1という名前は名前空間としての役目を持ち、他のアプリケーション内においても利用できます。

 

静的ファイル自体のURLは下記のようになります。

staticの名前の部分は、settings.pyにおいて設定されています。

もし「STATIC_URL = ‘/aiueo/’」のように変更した場合、URLは下記のように変わります。

 

 

 

プロジェクト単位での静的ファイル


 

次にすべてのアプリケーションにおいて共通して利用する場合の、すなわちプロジェクト単位での静的ファイルを作成してみます。

 

まずsettings.pyに、STATICFILES_DIRS の項目を下記のように追記します。

 

hello_project/settings.py

 

次にmanage.pyと同階層に、上述したos.path.join()の第2引数と同じ名前のstaticディレクトリを作成し、その中にstyle.cssを作成します。

 

テンプレートを下記のように編集します。

 

myapp1/templates/myapp1/index.html

8行目

アプリケーション単位での記述方法 myapp1/style.css から、myapp1を削除しています。以上でプロジェクト単位でのCSSが反映されます。

 

静的ファイル自体のURLは下記のようになります。

 

 

 

参照ページ


 

django ドキュメント

はじめての Django アプリ作成、その 6

 

静的ファイル (画像、JavaScript、CSS など) を管理する

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー