Utilizzando il server dev django (1.7.4), voglio aggiungere alcune intestazioni a tutti i file statici che serve.django dev server, aggiunta di intestazioni a file statici
sembra che io posso passare una visualizzazione personalizzata per django.conf.urls.static.static
, in questo modo:
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)
E common.views.static.serve
assomiglia a questo:
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
Tuttavia, il fatto di avere django.contrib.staticfiles
in INSTALLED_APPS
aggiunge gli URL statici automaticamente, e non sembra essere un modo per ignorarli. La rimozione di django.contrib.staticfiles
da INSTALLED_APPS
rende questo lavoro, tuttavia, se lo faccio, i file statici non sono più disponibili.
Come è possibile sovrascrivere le intestazioni fornite per file statici utilizzando il server di sviluppo django?
hmmm, presumo hai le tue ragioni, ma non si poteva ottenere questo definendo le intestazioni come includere all'interno un blocco su un modello generico e quindi estendere tale modello sui modelli reali. –
Non è per i file html, è per i file dei font. – synic
oh, ok. beh, come ho detto, ho pensato che tu avessi le tue ragioni e questo è il motivo per cui non l'ho scritto come risposta. –