Jinjia2与Vue模板解析兼容问题
前言
最近比较热衷于Flask+Vue+Mysql的微服务架构来开发安全工具,其优点是实现方便快捷。不过在研究过程中发现有时写的Vue模板渲染失败,出现页面空白的情况。经过排查发现是 Jinjia2 与 Vue 都会解析 {{}} 的问题,且当使用了服务端 Jinjia2 解析 {{}} 时,可能导致 Vue 无法渲染 {{}} 从而获取不到后端传递的参数。
问题过程
例如从数据库取数据后由后端给前端传参

前端使用 Vue 渲染模板

这时启动 Flask 后发现后端一直提示 “r” undefined,且接口响应 500,前端页面空白 Vue 没有正常渲染

解决分析
这里是因为 Jinjia2 先把 {{ r.ts }} 解析了,浏览器没有收到完整的 {{ r.ts }} 导致 Vue 渲染出错。要解决该问题需要让 Jinjia2 不要解析 {{}},将其原样发给 Vue。
需要给 Vue 应用区块加上
{% row %}<div id="app">...</div>{% endrow %}

这样 Vue 就能收到传参并渲染前端模板。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Egstar站长!
评论







