Jekyll向JavaScript添加空字符

Jekyll向JavaScript添加空字符,javascript,ruby,vagrant,jekyll,Javascript,Ruby,Vagrant,Jekyll,我想和杰基尔一起用。但是,我生成的JavaScript附加了非法字符,在呈现页面时会导致错误 特别是js/init.js在呈现到\u站点后,似乎在其末尾添加了两个字符。在崇高文本中,它们显示为NUL,在vi中,它们显示为^@ 我正在从一个可靠的流浪VM运行Jekyll,源repo是一个映射到我的Windows主机的卷。我现在还没有编辑任何文件,所以我看不出这与行尾有关 有什么想法吗?(我知道这是一个非常古老的问题的后续部分。) TL;DR:解决方案:将frontmatter应用于Javascri

我想和杰基尔一起用。但是,我生成的JavaScript附加了非法字符,在呈现页面时会导致错误

特别是
js/init.js
在呈现到
\u站点
后,似乎在其末尾添加了两个字符。在崇高文本中,它们显示为
NUL
,在vi中,它们显示为
^@

我正在从一个可靠的流浪VM运行Jekyll,源repo是一个映射到我的Windows主机的卷。我现在还没有编辑任何文件,所以我看不出这与行尾有关

有什么想法吗?

(我知道这是一个非常古老的问题的后续部分。)

TL;DR:解决方案:将frontmatter应用于Javascript文件

在几个月的时间里,我一直遇到这个问题,在搜索中没有找到解决方案。最后今天,我想我已经解决了我自己的案子

事实证明,Jekyll正试图将该文件(至少在我的案例中是这样)作为页面文档进行处理,因此它会查找frontmatter,并且由于某种原因,在文件丢失时无法呈现该文件

在我的脚本中添加了一些frontmatter之后,即使它本身破坏了该文件的Javascript兼容性,Jekyll似乎也能很好地使用它,而且我不再看到后面的
^@
字符(等等)

带有frontmatter的示例脚本

这种策略也有一些辅助功能

---
some_variable: "yourvalue"
---
// access the value from the frontmatter within your script.
document.body.getElementById("mydiv").innerHTML = "{{some_variable}}";

在添加FrontMatter之前(它为我修复了它,但破坏了Samuel提到的兼容性),请先尝试一下

我的JS文件是这样开始的:

"use strict";

var filterView = {
将其更改为:

//A comment here helps Jekyll not get confused about file rendering
"use strict";

var filterView = {

在我的例子中,我只是遇到了一个JS文件的问题,Jekyll在其中添加了空字符,并从“use strict”开始,没有任何内容,这才是区别。我不知道这是否能解决这个问题的所有原因,但值得一试

无法在我的Ubuntu 14.04上复制。您可以将代码推送到github存储库上吗?我们将首先调查代码编辑器故障。像编码(utf-8)和无BOM…感谢联系。在可信的客户机上编辑vi中的文件似乎不会引起问题。我会试着把这个流浪汉的文件和网站放到一个repo中进行测试。有时它添加nul字符,有时它只保存了文件的一半。知道是什么引起的吗?我也通过Vagrant使用Ubuntu14,在Windows上使用Sublime进行编辑。