我有下面这个 Flask 路由,可以提供静态内容:
@app.route('/static/<path:path>')
@resourceDecorator
def getStaticFile(path):
return send_from_directory('static', path)
@resourceDecorator
的声明如下:
def resourceDecorator(f):
def new_func(*args, **kwargs):
resp = make_response(f(*args, **kwargs))
resp.cache_control.no_cache = True # Turn off caching
resp.headers['Access-Control-Allow-Origin'] = '*' # Add header to allow CORS
return resp
return update_wrapper(new_func, f)
装饰器设置头部以取消缓存并允许跨域访问,这适用于我的其他“常规”路由,但通过静态路由发送的文件似乎没有设置其头部。
出了什么问题?
getStaticFile
视图返回的对象类型吗?它是否与make_response
函数所期望的类型之一相同?我在这里有些疑惑,因为send_from_directory
返回了一些特殊的对象。 - shreyas