获取Livereload+Flask以触发硬刷新

2024-05-16 16:20:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在JavaScript世界中接触到Svelte/Rollup之后,我印象深刻的是,当对源代码进行更改时,它可以自动刷新浏览器。为了在Python中寻找类似的行为,我找到了支持与Flask集成的包livereload(非常确定使用了相同的技术)。我希望刷新的结果反映对源代码的所有更改。你知道吗

我正在使用WSL与livereload v2.5.1,并通过Chrome查看。我可以成功地让页面刷新检测到的源代码更改,但刷新不会重新下载新文件,只显示缓存的文件。页面确实会刷新,但我需要按Ctrl+单击刷新来查看实际更改。使用开发人员模式并关闭缓存可以根据需要工作。使用Svelte/Rollup不需要禁用缓存来查看源代码更改。你知道吗

我所做的大部分更改都是对*.css或*.js文件的更改,这些文件来自标准Flask项目模板中的“static”文件夹,并使用Flask的“render\u template”功能呈现。你知道吗

我将按如下方式启动Flask服务器:

app = create_app()
app.debug = True
app.config['TEMPLATES_AUTO_RELOAD'] = True

server = Server(app.wsgi_app)
server.watch(filepath='static/*', ignore=lambda *_: False)
server.serve(liveport=35729, host='127.0.0.1', port=80)

我希望不必禁用缓存,这样livereload触发的刷新实际上反映了源代码中的更改。在Flask或livereload中是否有我可以用来实现这一点的设置,或者这是livereload包的一个功能请求?你知道吗

相关问题:

How to automate browser refresh when developing an Flask app with Python?

更新编辑: 进一步的测试表明,这是Chrome的一个问题,Firefox在开箱即用的情况下可以正常工作。挖掘底层利弗雷洛德.js库似乎有一个参数'isChromeExtension',我试图强制设置为真,但没有效果。你知道吗


Tags: 文件功能trueappflaskserver源代码js