DjangoでstaticファイルのURLをアプリごとに設定したい。
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'}),
...
]
Author And Source
この問題について(DjangoでstaticファイルのURLをアプリごとに設定したい。), 我々は、より多くの情報をここで見つけました https://qiita.com/hanashima/items/1af79652cb84e075421d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .