1. aion

    Posted

    aion
Changes in title
+Django 静的ファイル (static) 関係の設定まとめ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,54 @@
+# 環境
+Python 3.4.3
+Django 1.10
+uwsgi
+Nginx
+CentOS7.2@さくらVPS
+
+# なぜ
+
+Djangoを本番環境にデプロイするときに静的ファイル関係の設定でいろいろはまったので,まとめる.
+基本的に以下の5つあるようだが,上から3つだけ使用していたので,それらに関してまとめる.
+ちなみに以下のそれぞれの定数はsetting.pyで設定する.
+
++ STATIC_ROOT
++ STATIC_URL
++ STATICFILES_DIRS (Prefixes (optional))
++ STATICFILES_STORAGE
++ STATICFILES_FINDERS
+
+> https://docs.djangoproject.com/en/1.10/ref/settings/#id17
+
+# STATIC_ROOT
+これを正しく設定しておかないと本番環境では静的ファイルがうまく動かなかった.
+実際に管理サイトや通常サイトのcssや画像などが適用されなかったり,表示されなかった.
+
+自分の場合は,以下のように設定してある.
+STATIC_ROOTが指すのは,実際のLinuxでの絶対パスになる.
+
+```python:setting.py
+# Fetch Django's project directory
+DJANGO_ROOT = dirname(dirname(abspath(__file__)))
+# Fetch the project_root
+PROJECT_ROOT = dirname(DJANGO_ROOT)
+
+STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') # /path/to/project_directory/static
+```
+
+>デプロイ環境のためにcollectstaticが静的ファイルを集めるディレクトリへの絶対パス
+> The absolute path to the directory where collectstatic will collect static files for deployment.
+
+>Example: "/var/www/example.com/static/"
+
+# STATIC_URL¶
+とりあえず /static/にしておけばよい.
+すると静的ファイルを domain/static/ に読みに行ってくれるようだ.
+
+> STATIC_ROOTのなかに置かれた静的ファイルを参照するときに使われるURL
+> URL to use when referring to static files located in STATIC_ROOT.
+> Example: "/static/" or "http://static.example.com/"
+
+
+# STATICFILES_DIRS¶
+たぶんアプリごとに追加の静的ファイルがあるようなときに設定する必要がある.
+自分の環境ではひとまずアプリごとの静的ファイルは必要なかったので,設定せず.