您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Django静态文件的自定义HTTP标头

5b51 2022/1/14 8:23:22 python 字数 2841 阅读 564 来源 www.jb51.cc/python

我正在使用Django编写一个图像库,我想添加一个按钮来获得高分辨率图像(低分辨率显示在详细信息页面中).如果我把一个< a>链接,浏览器将打开图像,而不是下载它.添加HTTP标头,如: Content-Disposition: attachment; filename="beach008.jpg" 工作,但由于它是一个静态文件,我不想处理与Django的请求.目前,我正在使用NGINX来提供静态

概述

Content-Disposition: attachment; filename="beach008.jpg"

工作,但由于它是一个静态文件,我不想处理与Django的请求.目前,我正在使用Nginx来提供静态文件,动态页面通过FastCGI重定向到Django进程.我正在考虑使用Nginx add-header命令,但是可以设置filename =“xx”部分吗?或者也许有一些方法来处理Django中的请求,但是Nginx会提供内容

如果您想要控制哪些用户访问这些文件,该解决方案是很好的.

您也可以使用如下配置:

#files which need to be forced downloads
    location /static/high_res/ {
        root /project_root;

        #don't ever send $request_filename in your response,it will expose your dir struct,use a quick regex hack to find just the filename
        if ($request_filename ~* ^.*?/([^/]*?)$)
        {
            set $filename $1;
        }

        if ($filename ~* ^.*?\.(jpg)|(png)|(gif)$){
                       add_header Content-Disposition "attachment; filename=$filename";
                   }
         }

    location /static {
        root /project_root;
    }

这将强制在一些high_res文件夹(MEDIAROOT / high_rest)中的所有图像上下载.而对于其他静态文件,它的行为就像正常.请注意,这是一个适用于我的修改后的快速入侵.它可能有安全隐患,所以请谨慎使用它.

总结

以上是编程之家为你收集整理的使用Django静态文件的自定义HTTP标头全部内容,希望文章能够帮你解决使用Django静态文件的自定义HTTP标头所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶