请查看底部的更新
我假设您正在使用express
- 请检查您的应用程序设置。
app.set('view options', { pretty: false })
如果你使用
jade
渲染并启用了
pretty: true
模式,它会通过缩进排列生成的源代码(标签)来进行嵌套。关闭漂亮打印功能可以解决问题(但要确保没有尾随空格,如@alessioalex所指出的那样)。
如果你有需要输出漂亮格式化的原因(比如客户端规范),那么你可以尝试其他方法。我曾经遇到过在
textarea
标签中出现类似问题的情况,这是很令人沮丧的,因为空格实际上被注入到表单的内容中。我解决这个问题的方法是使用带有闭合标签的字面html。
<textarea name="someField"></textarea>
文档可以为你提供更多细节(在这种情况下搜索html
)。GitHub上有一个公开的第341号问题,建议采用类似于Scalate中的这种方法,但它目前在jade
中不起作用(截至版本0.19.0
)。
希望能对你有所帮助。
更新
好的-微妙而酷...有一种更好的方法可以保持来自pretty:true
的性感输出,并避免标签内部的间距(我的textarea
示例)...我刚试了将 .
添加到标签末尾(见代码),它就完美工作™了 :-)
form(name='frmname', method='POST')
textarea(name='someField').
渲染:
<form name="frmname" method="POST">
<textarea name="someField"></textarea>
</form>
太好了!
为什么这个能运行?因为jade
将标签上的.
后缀视为标志,表示该标签将只包含一个文本块,并且没有提供文本块,因此它默认为''
,即一个空字符串。