Flask-bootstrap更改成国内cdn公共js资源库

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)

你可能感兴趣的:(Flask,bootstrap)