Flask 的静态资源 URL 的 versioning 目前有官方支持的 best practice 么?

2020-04-26 02:32:00 +08:00
 Livid
官方文档里没有提:

https://flask.palletsprojects.com/en/1.1.x/tutorial/static/

目前找到的一些实现方式都是第三方的:

https://pythonhosted.org/Flask-Versioned/

https://ana-balica.github.io/2014/02/01/autoversioning-static-assets-in-flask/
4331 次点击
所在节点    Flask
7 条回复
Livid
2020-04-26 02:41:32 +08:00
找到了一个曾经的官方 snippet,覆盖 url_for 的实现方式:

https://github.com/fengsp/flask-snippets/blob/master/urls/static_cache_buster.py
mywaiting
2020-04-26 08:52:52 +08:00
既然换了 Flask,就不要把 Tornado 的这套静态文件的 ?v=xxxx 的方法移过来用了,不好也不好用

直接打包所有静态文件成为 main-xxxxx.js style-xxxx.css 这样,自动生成一个 import map 给模板导入使用,这样的方式比基于 QueryString 的方式好得多
Livid
2020-04-26 09:09:17 +08:00
@mywaiting 是的,用 query string 会有很多问题。

关于 flask/jinja2 里使用动态文件名,能否推荐一篇比较好的教程呢?
mywaiting
2020-04-26 09:18:30 +08:00
@Livid 我也没有看什么教程咯,都是差不多想一下就实现了......

如果实在需要教程,搜一下 Flask-Assets 诸如此类的,应该能实现你的需求
cz5424
2020-04-26 09:22:16 +08:00
我是自己造了个轮子直接把静态资源改为 cdn,用文件的日期做时间戳区分版本,前后端分离后 flask 越来越少用来渲染模板
icodesign
2020-04-26 09:22:26 +08:00
@Livid
4 楼说的 [Flask-Assets]( https://flask-assets.readthedocs.io/en/latest/) 是一个常用的
https://github.com/nickjj/flask-static-digest 这个讲得比较详细
iConnect
2020-04-26 09:41:55 +08:00
#3 jinja2 里的 set 方法,可以解决楼主的问题吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX