Sử dụng máy chủ django dev (1.7.4), tôi muốn thêm một số tiêu đề vào tất cả các tệp tĩnh mà nó phục vụ.máy chủ django dev, thêm tiêu đề vào các tệp tĩnh
Dường như tôi có thể vượt qua một giao diện tùy chỉnh để django.conf.urls.static.static
, như vậy:
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)
Và common.views.static.serve
trông như thế này:
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
Tuy nhiên, chỉ cần có django.contrib.staticfiles
trong INSTALLED_APPS
thêm các url tĩnh tự động và dường như không có cách nào để ghi đè chúng. Loại bỏ django.contrib.staticfiles
từ INSTALLED_APPS
làm cho công việc này, tuy nhiên, nếu tôi làm điều đó, templatetags staticfiles không còn có sẵn.
Làm cách nào để ghi đè tiêu đề được phân phát cho tệp tĩnh bằng máy chủ phát triển django?
hmmm, tôi giả sử bạn có lý do của bạn, nhưng bạn có thể không đạt được điều này bằng cách định nghĩa các tiêu đề như một bao gồm trong một khối trên mẫu chung và sau đó mở rộng mẫu đó trên các mẫu thực tế của bạn. –
Nó không dành cho tệp html, nó dành cho tệp phông chữ. – synic
oh, ok. tốt, như tôi đã nói, tôi cho rằng bạn có lý do của bạn đó là lý do tại sao tôi không viết nó như là một câu trả lời. –