将包含文件传递到Handlebars布局

时间:2017-02-11 07:50:13

标签: javascript node.js svg handlebars.js express-4

我正在使用Node.js,Express 4和Handlebars模板处理器。我使用Handlebars渲染的一些页面视图具有几KB的静态内联SVG代码。是否有一种简单干净的方法将SVG代码放入一个单独的文件中以包含在Handlebars布局模板中?理想情况下,这个包含文件的扩展名为.svg,但.hbs是可以接受的。

3 个答案:

答案 0 :(得分:1)

昨天我解决了同样的问题。我最后将svg文件加载到字符串中,然后将其传递给把手模板。

var svgTemplate = fs.readFileSync('./public/app/build/images/spriteAll.svg', 'utf8');

var express = require('express'),
    router = express.Router();

router.get('/',  function (req, res) {
    res.render('main', {
        svgTemplate: svgTemplate
    });
});

//其中main.hbs包含: ...

<body class="ng-cloak">
    <div class="inline-svg">
        {{{svgTemplate}}}
    </div>
....
</body>

答案 1 :(得分:0)

您可以在项目中创建一个静态资源文件夹(例如/public),include it with Expressapp.use(express.static('public'));将.svg文件放在那里。

然后在您的手柄文件中添加SVG,就像在普通HTML项目中一样,例如<img src="your.svg">

答案 2 :(得分:0)

您可以尝试handlebars-partial-file将文件的内容包含为Handlebars partial。