我有一个Flask应用程序,它将在Apache下运行。我有一些静态文件,但它们需要经过身份验证的访问。因此,使用X-Sendfile似乎可以在身份验证后加快文件传递:
flaskapp = flask.Flask()
flaskapp.use_x_sendfile = True
然后我在哪里生成响应:
^{pr2}$在Apache下它似乎可以正常工作。问题是当我运行开发服务器时:
# Use SharedDataMiddleware to deliver JS, CSS, icons, etc.
flaskapp.wsgi_app = SharedDataMiddleware(flaskapp.wsgi_app, {'/static': '/path/to/static'})
flaskapp.run(host='0.0.0.0', debug=True)
当我以这种方式使用use_x_sendfile = True
运行它时,X-Sendfile头将显示在实际响应中,并向客户机传递一个空文件(0字节)。关闭X-Sendfile(并强制浏览器放弃缓存的文件)解决了这个问题,因此Werkzeug服务器Flask运行似乎没有处理X-Sendfile头。有没有一种方法可以让开发服务器处理X-Sendfile,还是在开发过程中被迫关闭它?在
flask文档提到server must support、
X-Sendfile
和werkzeug的dev server没有(文档中没有提到任何地方,通过werkzeug的源代码sendfile
的grep没有返回匹配项)。在将这种行为添加到服务器上可能不太难,但我不太确定支持这样的高级特性是否是开发服务器的优先事项。在
顺便说一句,当^{} 的附加关键字参数被传递给werkzeug的^{} 时,您不需要自己创建中间件,只需使用:
相关问题 更多 >
编程相关推荐