由于vue的{{}}和jinja 沖突 所以我把 vue的改成了{[]}
{{url_for('static', filename='{[id]}.jpg')}}
然后輸出是
/static/%7B%5Bid%5D%7D.jpg
想了個很蠢的辦法
{{ url_for('static', filename='{[id]}.jpg').replace('%7B%5B','{[').replace('%5D%7D',']}')}}
第一種方案就是更改jinja2的語法,但是不推薦
env = Environment(variable_start_string="${", variable_end_string="}")
這樣可以把Jinja2的變量分隔符改為“${}”,當(dāng)然還可以做更多的設(shè)置。但這樣做不只對服務(wù)器端模板的編寫者不習(xí)慣,更嚴(yán)重的問題是一些針對這種模板的編輯器也認(rèn)不出這個符號了。
最好的方案就是更改VUE的語法,我在所有的項目中都是這樣定義的,寫在VUE代碼的前面即可,這樣代碼遷移也不會出問題
// ES6 模板字符串
Vue.config.delimiters = ['${', '}']
// 修改文本插值的定界符。
Vue.config.unsafeDelimiters = ['{!!', '!!}']
// 修改原生 HTML 插值的定界符。