Korzystając z serwera dev django (1.7.4), chcę dodać niektóre nagłówki do wszystkich plików statycznych, które obsługuje.Serwer django dev, dodając nagłówki do plików statycznych
Wygląda na to, że może przejść do widoku niestandardowego django.conf.urls.static.static
, tak:
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)
And common.views.static.serve
wygląda następująco:
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
jednak po prostu o django.contrib.staticfiles
w INSTALLED_APPS
dodaje statycznych adresów URL automatycznie i wydaje się, że nie ma sposobu na ich obejście. Usunięcie django.contrib.staticfiles
z INSTALLED_APPS
powoduje, że to działa, jednak jeśli to zrobię, statyczne pliki templatetag nie będą już dostępne.
Jak mogę przesłonić nagłówki wyświetlane dla plików statycznych za pomocą serwera deweloperskiego django?
hmmm, zakładam, że masz swoje powody, ale nie może to osiągnąć poprzez definiowanie nagłówków jako zawierać wewnątrz blok ogólnego szablonu, a następnie rozszerz ten szablon na rzeczywiste szablony. –
Nie jest to plik html, dotyczy plików czcionek. – synic
oh, ok. cóż, tak jak powiedziałem, założyłem, że masz swoje powody, dlatego nie napisałem tego jako odpowiedź. –