第一个问题,所以我希望我的格式化工作。我有一个运行的节点服务器工作得很好。我正在编写一个简单的javascript文件来从此服务器获取HTML文件,如下所示
#!/usr/bin/env node
var request = require('request');
request.get("http://my.ip.address/htmlTemplate.html", function (error, response, body){
if(!error){
console.log(body);
var x = body;
}
});
并且HTML模板中包含了Handlebars,如下所示:
<!-- htmlTemplate.html -->
<div class="fake" id="thing1"></div>
{{#if foo}}
<div class="conditional_html">
All this stuff inside here.
</div>
{{/if}}
<div class="{{bar}} class2" id="thing2"></div>
请求有效,我收到了内容,但我从回复中得到的内容是:
<div class="fake" id="thing1"></div>
<div class=" class2" id="thing2"></div>
省略了车把内容。我想把文件放在原始的,未编译的形式(作为纯文本)。这是否可以通过http请求?我能否以与fs
类似的方式远程阅读此文件?
答案 0 :(得分:0)
不会省略Handlebars内容。您未在请求中提供foo
的值,因此if foo
会返回false
。将请求网址修改为类似http://my.ip.address/htmlTemplate.html?foo=true
的内容应该会使条件内容在最终响应中呈现。
就避免渲染而言,它取决于正在处理请求的服务器的配置(在您的情况下为http://my.ip.address
)。如果所有文档响应都在渲染引擎后面(通常就是这种情况),则无法绕过渲染。但是,您可以选择性地(手动)设置某些路径以便在不编译的情况下提供响应。只需发送回复,无需致电Handlebars.compile()
或template()
。