将包含文件传递到 Handlebars 布局中
Passing an include file into a Handlebars layout
我正在使用 Node.js、Express 4 和 Handlebars 模板处理器。我使用 Handlebars 呈现的一些页面视图有几 kBytes 的静态内联 SVG 代码。有没有一种简单干净的方法可以将 SVG 代码放入一个单独的文件中,以包含在 Handlebars 布局模板中?理想情况下,此包含文件的扩展名为 .svg,但 .hbs 也是可以接受的。
您可以在您的项目中创建一个静态资源文件夹(例如 /public
),然后 include it with Express:app.use(express.static('public'));
将您的 .svg 文件放在那里。
然后在您的车把文件中简单地添加 SVG,就像在正常的 HTML 项目中一样,例如 <img src="your.svg">
昨天我正在解决同样的问题。我完成了将 svg 文件加载到字符串中,然后将其传递给 handlebars 模板。
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>
您可以尝试 handlebars-partial-file 将文件内容作为 Handlebars 部分包含。
我正在使用 Node.js、Express 4 和 Handlebars 模板处理器。我使用 Handlebars 呈现的一些页面视图有几 kBytes 的静态内联 SVG 代码。有没有一种简单干净的方法可以将 SVG 代码放入一个单独的文件中,以包含在 Handlebars 布局模板中?理想情况下,此包含文件的扩展名为 .svg,但 .hbs 也是可以接受的。
您可以在您的项目中创建一个静态资源文件夹(例如 /public
),然后 include it with Express:app.use(express.static('public'));
将您的 .svg 文件放在那里。
然后在您的车把文件中简单地添加 SVG,就像在正常的 HTML 项目中一样,例如 <img src="your.svg">
昨天我正在解决同样的问题。我完成了将 svg 文件加载到字符串中,然后将其传递给 handlebars 模板。
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>
您可以尝试 handlebars-partial-file 将文件内容作为 Handlebars 部分包含。