【问题标题】:Unable to render partials with handlebars and assemblefile.js无法使用把手和 assemblefile.js 渲染部分
【发布时间】:2017-07-17 22:42:28
【问题描述】:

我正在使用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}}

组装任务产生这个错误:

找不到部分partials/myPartial.hbs

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

【问题讨论】:

    标签: javascript handlebars.js assemble


    【解决方案1】:

    只需使用部分文件名的stem

    {{> myPartial }}
    

    还有一个名为 partial 的内置帮助器,它尝试通过键(如 myPartial)或其他属性(如 path (partials/myPartial.hbs))查找部分内容

    {{partial 'myPartial'}}
    

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

    【讨论】:

    • 谢谢!删除额外的路径和扩展名有效(尽管我认为我已经在故障排除中尝试过)。
    猜你喜欢
    • 2012-01-31
    • 2014-04-20
    • 2014-10-19
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多