Apache / Gunicornを使用している場合は、これが私の設定方法です。
Djangoのルートディレクトリ(とmanage.py
)で、dirを作成しますmkdir -p django_static/static
プロジェクトsettings.py
で次のように設定します。
DEBUG = False
INSTALLED_APPS = [..., 'django.contrib.staticfiles', ...]
STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, "django_static", "static")
を実行しますpython manage.py collectstatic
。これにより、静的コンテンツがに出力されますdjango_static/static
(およびオプション)gunicorn
でサーバーを起動しますgunicorn your_project_name.wsgi
/var/www
デフォルトのグローバルApache設定があると仮定すると、静的ディレクトリへ
のソフトリンクを作成する必要があります。sudo ln -s /path/to/your_django_project/django_static /var/www/your_django_project_static
www.example.com
Djangoアプリをポイントするドメインについて、ルートhttps://www.example.com
を127.0.0.1:8000
除くwww.example.com/static/
すべてのリクエストをプロキシするために、Apacheで次の仮想ホストを構成します(この場合、からのそのようなリクエストにファイルを提供しますdjango_static
)。
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/your_django_project_static
<Location "/">
ProxyPreserveHost On
ProxyPass http://127.0.0.1:8000/
ProxyPassReverse http://127.0.0.1:8000/
</Location>
<Location "/static/">
ProxyPass "!"
</Location>
</VirtualHost>
出来上がり!