Javascript 节点手柄在渲染视图之前添加额外的文本节点
我有以下问题: 在具有把手的布局中渲染视图时,引擎会在渲染视图主体之前添加额外的文本节点Javascript 节点手柄在渲染视图之前添加额外的文本节点,javascript,html,css,node.js,handlebars.js,Javascript,Html,Css,Node.js,Handlebars.js,我有以下问题: 在具有把手的布局中渲染视图时,引擎会在渲染视图主体之前添加额外的文本节点 <nav></nav> {{{body}}} <footer></footer> {{{body}}} 导致 <nav></nav> " [empty text node here] " <rendered view> <footer></footer>
<nav></nav>
{{{body}}}
<footer></footer>
{{{body}}}
导致
<nav></nav>
"
[empty text node here]
"
<rendered view>
<footer></footer>
"
[此处为空文本节点]
"
这个空文本节点有它自己的高度,并打破了我的CSS页边距和填充。请注意,如果我将视图HTML直接放在布局中,而不使用Handlebar模板,则没有文本节点,一切正常
你知道为什么会发生这种情况以及如何解决吗?我想我找到了原因,请检查你的局部视图文件,文件中是否插入了BOM表,一些编辑器会将其插入UTF-8、UTF-16和UTF-32格式的文件中。因此,如果您使用的是UTF-8,只需删除BOM即可 @leoyoo的答案是正确的。 我正要发布同样的问题,发现了这个 在Chrome上,源代码显示如下所示的空白字符(红点): …并将其字符串化为
代码>
我在Visual Studio上,这是保存文件时的默认设置:
当我将其更改为UTF-8而没有签名(如下所示)时,空白字符消失
在Visual Studio上执行以下操作:文件>>将fileName.ext另存为
,然后单击“保存”按钮旁边的下拉菜单。
如果你尝试{{{~body}},你会怎么做?这将删除tildeis侧边的空白,即使是有效的语法也会出现在Handlebar文档中<代码>http://handlebarsjs.com/expressions.html
<代码>空白控件模板空白可以通过在大括号旁添加~字符从任何mustache语句的任一侧省略。谢谢,但在解析HTML时,它似乎不是express Handlebar中的有效语法,而不是纯文本http://localhost:1337. 按CTRL+C终止。。。错误:第96行的分析错误:。。。{{{~body}}}可能是波浪线和“body”之间的一个空格。另请参见:。它应该会起作用。你用的是最新的车把吗?