Node.js 这个字是什么&引用;为什么会导致线路中断?

Node.js 这个字是什么&引用;为什么会导致线路中断?,node.js,layout,handlebars.js,Node.js,Layout,Handlebars.js,我正在使用Handlebar+hbs(遵循block/extend helper示例)为我的节点应用程序呈现html。出于某种原因,我的一个部门被推下了一条线 我在chrome中检查了dom inspector,有一行带双引号: 这是什么原因造成的: 当我从dom检查器中删除双引号时(按backspace或delete),布局是正确的: 到底是怎么回事?它是非打印字符还是什么?html/模板中没有任何内容,空格(或任何字符)不应该导致块级元素改变位置,对吗 这里有一些代码: Layout

我正在使用Handlebar+hbs(遵循block/extend helper示例)为我的节点应用程序呈现html。出于某种原因,我的一个部门被推下了一条线

我在chrome中检查了dom inspector,有一行带双引号:

这是什么原因造成的:

当我从dom检查器中删除双引号时(按backspace或delete),布局是正确的:

到底是怎么回事?它是非打印字符还是什么?html/模板中没有任何内容,空格(或任何字符)不应该导致块级元素改变位置,对吗

这里有一些代码:
Layout.html的相关部分

<div id="details" class="east">{{{block "east"}}}</div>
更新
显然,这是,我的预编译车把模板在渲染时都会将其作为第一个字符发出。

因此我添加了一个hack来删除作为模板输出中第一个字符出现的BOM表:

var html = detailTemplate(res.data);
if (html.charCodeAt(0) === 65279) { // hack to fix precompiled hbs template bug
  html = html.substring(1);
}
$("#details").html(html);

事实证明,block+extend助手与问题无关。我假设我使用的编码有问题,但我不确定如何改变它。上面的代码解决了这个问题。

因此我添加了一个hack来删除在模板输出中显示为第一个字符的BOM:

var html = detailTemplate(res.data);
if (html.charCodeAt(0) === 65279) { // hack to fix precompiled hbs template bug
  html = html.substring(1);
}
$("#details").html(html);

事实证明,block+extend助手与问题无关。我假设我使用的编码有问题,但我不确定如何改变它。上面的代码解决了这个问题。

已解决,使用编码保存>UTF-8

已解决,使用编码保存>UTF-8

模板是什么样子的?你在给它输入什么数据?生成HTML是什么样子的?CSS的作用是什么?你应该发布你的hbs,这样人们就可以看到是什么产生了额外的“@muistooshort”。我想我的观点是,我已经排除了CSS、模板和数据。我试图找出“”是什么字符,以及为什么它会导致换行。问题的标题可能不好。模板是什么样子的?你在给它输入什么数据?生成HTML是什么样子的?CSS的作用是什么?你应该发布你的hbs,这样人们就可以看到是什么产生了额外的“@muistooshort”。我想我的观点是,我已经排除了CSS、模板和数据。我试图找出“”是什么字符,以及为什么它会导致换行。这个问题的标题可能不好。
var html = detailTemplate(res.data);
if (html.charCodeAt(0) === 65279) { // hack to fix precompiled hbs template bug
  html = html.substring(1);
}
$("#details").html(html);