Flask-bootstrap默认使用cloudflare的cdn,国内速度堪忧经网络搜索,发现只有bootcss的更新较快,其他比如
http://lib.sinaapp.com
http://cdn.code.baidu.com
http://libs.baidu.com/
它们的更新速度都不够,没有最新版本的bootstrap,不能直接支持最新的Flask-bootstrap
发布代码也并不方便直接修改Flask-bootstrap库,所以在主程序创建了app后直接修改CDN设置即可,如下:
from flask.ext.bootstrap import Bootstrap, WebCDN, ConditionalCDN, BOOTSTRAP_VERSION, JQUERY_VERSION, HTML5SHIV_VERSION, RESPONDJS_VERSION
bootstrap = Bootstrap(app)
def change_cdn_domestic(tar_app):
static = tar_app.extensions['bootstrap']['cdns']['static']
local = tar_app.extensions['bootstrap']['cdns']['local']
def change_one(tar_lib, tar_ver, fallback):
tar_js = ConditionalCDN('BOOTSTRAP_SERVE_LOCAL', fallback,
WebCDN('//cdn.bootcss.com/' + tar_lib + '/' + tar_ver + '/'))
tar_app.extensions['bootstrap']['cdns'][tar_lib] = tar_js
libs = {'jquery': {'ver': JQUERY_VERSION, 'fallback': local},
'bootstrap': {'ver': BOOTSTRAP_VERSION, 'fallback': local},
'html5shiv': {'ver': HTML5SHIV_VERSION, 'fallback': static},
'respond.js': {'ver': RESPONDJS_VERSION, 'fallback': static}}
for lib, par in libs.items():
change_one(lib, par['ver'], par['fallback'])
change_cdn_domestic(app)