3

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

4

3 回答 3

4

昨天我正在解决同样的问题。我完成了将 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>
于 2017-02-14T17:56:47.777 回答
0

您可以/public在您的项目中创建一个静态资产文件夹(例如),并将其包含在 Express中:app.use(express.static('public'));将您的 .svg 文件放在那里。

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

于 2017-02-11T08:28:37.403 回答
0

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

于 2018-01-15T16:43:44.570 回答