#Flask中Bootstrap本地化
##背景说明:
原来开发Qt的时候,发现兼容性太难搞,虽然Qt在Windows系统比较好实现,但是在android系统或者IOS系统或者其他linux系统实现有点麻烦,开发一个兼容性比较好的,最好还是用网页版的。python当中开发网站的主要有Django和Flask,Django对于我这样的小白来说,难度相对比较大,Flask属于轻量级的,比较好入门。所以决定从flask开始。
##遇到的坑
Bootstrap是一个比较好的开源框架,如果可以上外网的话,其实不需要本地化。但是我的公司由于考虑到安全的原因,是禁止员工上外网的,那么如果使用Bootstrap如进行外网的CDN加速压根不行。例如在网站的head中使用外网的CDN加速,效果如下:
网站的CDN加速脚本
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
结果在局域网中显示:
发现根本不是自己原来设想的效果!
原来考虑过安装flask-bootsrap来进行本地化(pip install flask_bootstrap),但是学艺不精,尝试多次之后还是没能进行显示,于是我尝试下载bootsrap本地包,操作如下:
到官网下载,官网地址:https://v3.bootcss.com/
点击下载Bootsrap,接着你就看到bootsrap本地包,
那么需要将bootsrap本地化解压到flask基础文件夹当中,记得一定要放到static包当中,记得一定要放到static当中!(我试过其他文件夹,都失败过,也不知道具体原因),然后在html中增加如下脚本,需要指引到static当中的bootsrap中几个主要的css,js:
放到falsk中的static文件夹中如图:
引入头文件代码:
<link rel="stylesheet" href="{{ url_for('static',filename='bootstrap-3.4.1/dist/css/bootstrap.min.css') }}">
<script src="{{ url_for('static',filename='bootstrap-3.4.1/js/tests/vendor/jquery.min.js') }}"></script>
<script src="{{ url_for('static',filename='bootstrap-3.4.1/dist/js/bootstrap.min.js') }}"></script>
<link rel="stylesheet" href="{{ url_for('static',filename='css/base.css') }}">
根据以上操作之后,就可以发现可以再没有外网CDN加速的情况下看到Bootsrap效果了。这个问题困扰了3天,最后分享给大家,避免大家采坑。
最后的局域网当中的效果如图: