Flask:缓存静态文件(.js、.css)

3

我真的找不到任何相关的资源。那么,我如何将视图/函数的缓存与静态文件(即.css、.js)进行分离呢?我想将我的静态对象缓存一周,另一方面,我需要将函数/视图缓存仅缓存几分钟。

当我执行以下操作时

from flask.ext.cache import Cache
cache = Cache(config={'CACHE_TYPE': 'simple'})
cache.init_app(app)

@cache.cached(timeout=500)
def index():

    return render_template('index.html')

那么所有视图、对象的缓存时间都设置为相同的值,即500。如何处理?

1个回答

2
我建议不要从Python应用程序中提供静态文件,而是尝试将其委托给Web服务器(如nginx、apache等)。然后,您可以通过控制头部来设置过期时间,以控制浏览器缓存这些文件的时间。

好的,假设Flask尝试为静态对象设置500的缓存(它可以缓存各种东西或不缓存),而Apache尝试设置1周。哪个会优先生效?静态文件会被缓存500还是1周? - Emmet B
如果您的HTTP服务器正在提供静态文件,则Flask不会这样做。这意味着Flask不会对它们进行任何缓存。 - dirn
我同意上面的评论。此外,您不需要必须缓存它们,因为它们不会使您的应用服务器超载。这些文件将由Web服务器直接从磁盘提供服务。 - chaos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接