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