1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DjangoでstaticファイルのURLをアプリごとに設定したい。

Posted at

Djangoでは静的ファイルの配信は、settings.pyにあるSTATIC_URLで配信するURLは設定されますが、アプリケーションごとに配信するURLを設定したい事例がありました。

https://example.com/app1/static/
https://example.com/app2/static/

のようなイメージです。

本番環境等では、静的ファイルの配信は、nginxなどのwebサーバーに任せるべきことなので、正攻法としては、webサーバーのリバースプロキシやmod_rewriteなどでURLを変更させるのが良いかと思います。

djangoのrunserverでサクッと検証するには、urls.pyに以下のようにすれば、できました。

app1/urls.py
from django.views.static import serve
from os.path import join
from testProj.settings import BASE_DIR

urlpatterns = [
  re_path(r'^static/(?P<path>.*)', serve, {'document_root':join(BASE_DIR, 'app1', 'static'}),
  ...
]

プロジェクトのurls.pyに記述する場合は、以下のように。

testProj/urls.py
from django.views.static import serve
from os.path import join
from testProj.settings import BASE_DIR

urlpatterns = [
  re_path(r'^app1/static/(?P<path>.*)', serve, {'document_root':join(BASE_DIR, 'app1', 'static'}),
  ...
]
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?