javascript - 无法使用 handlebars 和 assemblefile.js 呈现部分

标签 javascript handlebars.js assemble

我正在使用 updated documentation for Assemble.js并且很难清楚地了解如何使用 Handlebars 在子文件夹中使用部分包含。

我在 assemblefile.js 中找到的对部分配置唯一有意义的引用是在已弃用的 gulp-assemble doc site 中.

Assemble.io没有帮助,因为它不是 latest github repo 的最新信息.

这是我的 assemblefile.js:

'use strict';

var assemble = require('assemble');
var app = assemble();
var streamRename = require('stream-rename');
var markdown = require('helper-markdown');

app.helper('markdown', require('helper-markdown'));

app.task('load', function(callback) {
  app.partials(['templates/partials/*.hbs']);
  app.pages(['templates/*.hbs']);
  callback();
})

app.task('assemble', ['load'], function() {
  return app.toStream('pages')
    .pipe(app.renderFile())
    .pipe(streamRename({extname:'.html'}))
    .pipe(app.dest("./"));
});

app.task('default', ['assemble']);

module.exports = app;

我的文件结构:

root
---/templates
------index.hbs
------/partials
---------myPartial.hbs

当我尝试使用 index.hbs 调用部分时:

{{> partials/myPartial.hbs}}

组装任务生成此错误:

The partial partials/myPartial.hbs could not be found

如何通过简单的 Assemble 构建将 Handlebars 部分包含在子目录中?

最佳答案

只需使用部分文件名的词干:

{{> myPartial }}

还有一个名为 partial 的内置助手,它试图通过键(如 myPartial)或其他属性(如 path)找到部分> (partials/myPartial.hbs)

{{partial 'myPartial'}}

有关模板如何协同工作的更多信息,请参阅 templates readme .这些文档也链接到 assemble readme .

关于javascript - 无法使用 handlebars 和 assemblefile.js 呈现部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154762/

相关文章:

javascript - 使用 JavaScript 中的 HTTP Accept header

javascript - 如何在html中实现异步管道,但在返回数据时仍然能够调用函数

javascript - 如何将模板从 Handlebar 迁移到 React 的 JSX

javascript - 如何创建一个 Handlebars 模板以在运行时在 Assemble 构建中编译?

javascript - 带有 $state.go 和 $scope 的参数

javascript - jquery淡入淡出保存数据 block

mysql - 如何将多个对象传递到单个 Handlebars 页面/模板中

javascript - Handlebars js不渲染数组

javascript - 如何大写并删除句子/字符串中的空格?