Python django开发服务器,向静态文件添加头
使用django-dev服务器(1.7.4),我想为它提供的所有静态文件添加一些头文件 看起来我可以将自定义视图传递给Python django开发服务器,向静态文件添加头,python,django,django-staticfiles,Python,Django,Django Staticfiles,使用django-dev服务器(1.7.4),我想为它提供的所有静态文件添加一些头文件 看起来我可以将自定义视图传递给django.conf.url.static.static,如下所示: if settings.DEBUG: from django.conf.urls.static import static from common.views.static import serve urlpatterns += static(settings.MEDIA_URL,
django.conf.url.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.service
如下所示:
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
,就会自动添加静态URL,而且似乎没有办法覆盖它们。从已安装的应用程序中删除django.contrib.staticfiles
可以实现此功能,但是,如果我这样做,staticfiles TemplateTag将不再可用
如何覆盖使用django development server为静态文件提供的标题?staticfiles
app命令,但允许您禁用静态文件的自动服务:
python manage.py runserver --nostatic
我发现作者的代码不适合我,我会得到如下错误:
[10/Dec/2020 18:08:13] "GET /static/img/foo.svg HTTP/1.1" 404 10482
Not Found: /static/img/foo.svg
我正在使用Django3,如果这有区别的话
这就是我所做的:
来自django.contrib.staticfiles.views导入服务
def custom_service(请求、路径、不安全=False、**kwargs):
"""
自定义服务静态文件的响应。
注:
这只能用于开发,而不能用于生产。
"""
响应=服务(请求、路径、不安全=真)
响应['Access-Control-Allow-Origin']='*'
#如果path.endswith('sw.js'):
#响应['Service-Worker-Allowed']='/'
返回响应
URL部分与问题相同:
来自django.conf导入设置的
如果设置为.DEBUG:
#允许自定义静态文件服务(与manage.py--nostatic一起使用)
从django.conf.url.static导入静态
从CHANGE.THIS.PATH.views导入自定义服务
urlpatterns+=静态(
settings.STATIC\u URL,document\u root=settings.STATIC\u root,view=custom\u service
)
hmmm,我想你有你的理由,但你不能通过将标题定义为通用模板块中的包含,然后在实际模板上扩展该模板来实现这一点。这不是html文件,而是字体文件。哦,好的。好吧,就像我说的,我认为你有你的理由,这就是为什么我没有写下来作为一个答案。