Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django开发服务器,向静态文件添加头_Python_Django_Django Staticfiles - Fatal编程技术网

Python django开发服务器,向静态文件添加头

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-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, 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文件,而是字体文件。哦,好的。好吧,就像我说的,我认为你有你的理由,这就是为什么我没有写下来作为一个答案。