我在Python应用程序中使用Starlette框架,并按照文档要求配置静态文件:
routes = [
...
Mount('/static', app=StaticFiles(directory='static'), name="static"),]问题是Starlette正在执行这些静态文件的自动缓存,而文档中没有关于如何禁用缓存的信息。
我尝试了asgi- cache,但我很快就发现它配置了缓存,但现在似乎不能禁用缓存。
文档中唯一提到禁用缓存的内容告诉您,它是一个"TODO“,是一个处理视图而不是静态文件的装饰器。
有人知道如何配置框架来保证Starlette不会缓存我的静态文件吗?
发布于 2021-10-30 09:09:23
似乎没有正式的配置来做这件事。
但是你可以通过重写starlette.staticfiles.StaticFiles的is_not_modified方法来实现。
示例:
from starlette.staticfiles import StaticFiles
class MyStatics(StaticFiles):
def is_not_modified(
self, response_headers: Headers, request_headers: Headers
) -> bool:
# your own cache rules goes here...
return False
...
Mount('/static', app=MyStatics(directory='static'), name="static"),]https://stackoverflow.com/questions/66093397
复制相似问题