我正在使用Livereload + Flask + Flask SOcketIO + Flask脚本。 问题是SocketIO需要gevent-socketio服务器。哪个都是livereload不是。别误会我的意思,我不想解决这个问题。我只运行livereload做一些css / sass / js工作,所以没关系。
但每次客户端试图连接到socketIO服务器时,异常都会引起我的注意。所以我认为我可以禁用javascript,但我的app主要依赖于角度来异步渲染指令,因此页面上没有标签可供我切换样式。然后我意识到我可以写一个配置属性,所以当我加载页面时,Jinja2将它作为一个javascript变量提供,我不会加载特定的socket-io js文件,以防它被设置为False。我试过这个。
在config.py上设置:
class Config:
LIVERELOAD = False
我使用FLask-Script
运行livereload服务器class liveReloadServer(Command):
"""prints hello world"""
def run(self):
with app.app_context():
server = Server(app.wsgi_app)
Config.LIVERELOAD = 'True'
server.serve(port=8080)
将config属性传递给javascript端
var LIVERELOAD = "{{ config['LIVERELOAD'] }}";
但这不起作用(LIVERELOAD总是显示True)因为我在Config类已插入Flask应用程序对象后设置属性。还有其他方法吗?
答案 0 :(得分:2)
您需要设置Flask应用的配置,该配置与您创建的任何自定义对象无关。
app.config['LIVERELOAD'] = True