如题,用过 django 的应该都知道,是用来一些条件语句之后前端会有大片的空白行出现,请问怎么样可以消除这些空白行呢?
我看 flask 使用的 jinja 模板是可以在循环里面加一个-来消除的,难道 django 一定要去更换模板才能消除吗?
1
SingeeKing 2018-04-17 11:28:48 +08:00 via iPhone
django-htmlmin ?
|
2
zjb861107 2018-04-17 11:33:53 +08:00
用 spaceless 也不行吗
|
3
misaka19000 2018-04-17 11:38:28 +08:00
去不掉就去不去掉啊。。。又没有人在乎源码好不好看
|
4
PressOne 2018-04-17 11:46:46 +08:00 via Android
jinja 有这个 bug 吗?怎么没发现过,楼主截个图看下,是不是真是 jinja 的锅?
|
6
turan12 2018-04-17 11:50:24 +08:00
如果是为了减少数据流量的话,试试启用 gzip。
|
7
Wichna 2018-04-17 11:52:38 +08:00
官方文档上写了,看看这里就知道了 http://jinja.pocoo.org/docs/2.10/templates/#whitespace-control
|
8
SingeeKing 2018-04-17 12:46:43 +08:00
@Wichna #7 Django 用的不是 Jinjia。。
|
9
so1n 2018-04-17 12:46:52 +08:00
我记得 django 的文档 模板-设计 api 里面有 可以找一找
|
11
xavierskip 2018-04-17 12:54:04 +08:00
django 自带模版好像没有什么办法
自己写一个? https://djangosnippets.org/snippets/569/ |
12
guoqiao 2018-04-17 13:04:13 +08:00
条件语句不要换行就好了,例如,本来这样:
``` {{ if user.is_authenticated }} Hi, {{user.username}}! {{ endif }} ``` 改成: ``` {{ if user.is_authenticated }}Hi, {{user.username}}!{{ endif }} ``` |
13
Hopetree OP @Wichna 我知道 jinja 可以,我问题里面都说了 flask 就是用的 jinja 可以去掉空白,就是加-,django 的模板不是 jinja,这个方法行不通,我试过了
|
14
Hopetree OP @zjb861107 这个当然是可以的,不过这个过滤器把 HTML 的结构层次都删没了,不是我要的结果,我只想删除那些因为使用了循环产生的空白,而不是想把自己留的删除掉
|
15
amezf 2018-04-17 14:09:12 +08:00
把默认的模板引擎换成 jinja2 不就好了
|
16
wizardoz 2018-04-17 14:14:42 +08:00
谁会关心输出 html 的结构层次?前后端分离的开发场景里面,还要用 webpack 打包一下,瞬间代码全糊了。
|
17
Hopetree OP @guoqiao 这种并不适合,因为循环和条件语句中间一般都包含了很多 HTML 代码,不可能不换货,算了,反正前端有空行就空行吧,也不影响效果,我也就强迫症问一下,既然没有我想要的解决办法就不弄了
|
19
xiwangzishi 2018-04-17 15:40:31 +08:00
base.html
{% spaceless %} {% endspaceless %} 解决问题 |