2015-02-25 3 views
5

Используя сервер 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?

+0

Ммм, я предполагаю, у вас есть свои причины, но вы не могли бы достичь этого путем определения заголовков как включить в блок на общем шаблоне, а затем расширьте этот шаблон на ваших фактических шаблонах. –

+0

Это не для файлов html, это для файлов шрифтов. – synic

+1

о, хорошо. ну, как я уже сказал, я предположил, что у вас были ваши причины, поэтому я не написал это как ответ. –

ответ

3

staticfiles приложение overrides the core runserver команды, но позволяет отключить автоматическое отбывание статических файлов:

python manage.py runserver --nostatic 
Смежные вопросы