Используя сервер django dev (1.7.4), я хочу добавить некоторые заголовки ко всем статическим файлам, которые он обслуживает.django dev server, добавляя заголовки к статическим файлам
Похоже, я могу передать пользовательский вид на django.conf.urls.static.static
, например, так:
if settings.DEBUG:
from django.conf.urls.static import static
from common.views.static import serve
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL,
document_root=settings.STATIC_ROOT, view=serve)
И common.views.static.serve
выглядит следующим образом:
from django.views.static import serve as static_serve
def serve(request, path, document_root=None, show_indexes=False):
"""
An override to `django.views.static.serve` that will allow us to add our
own headers for development.
Like `django.views.static.serve`, this should only ever be used in
development, and never in production.
"""
response = static_serve(request, path, document_root=document_root,
show_indexes=show_indexes)
response['Access-Control-Allow-Origin'] = '*'
return response
Однако, просто имея django.contrib.staticfiles
в INSTALLED_APPS
добавляет статические адреса автоматически, и, похоже, нет способа их переопределить. Удаление django.contrib.staticfiles
от INSTALLED_APPS
делает эту работу, однако, если я это сделаю, файлы templatetags staticfiles больше не доступны.
Как я могу переопределить заголовки, которые служат для статических файлов, используя сервер разработки django?
Ммм, я предполагаю, у вас есть свои причины, но вы не могли бы достичь этого путем определения заголовков как включить в блок на общем шаблоне, а затем расширьте этот шаблон на ваших фактических шаблонах. –
Это не для файлов html, это для файлов шрифтов. – synic
о, хорошо. ну, как я уже сказал, я предположил, что у вас были ваши причины, поэтому я не написал это как ответ. –