将包含文件传递到Handlebars布局

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

昨天我正在解决同样的问题。 我完成加载svg文件到string,然后将其传递到句柄模板。

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> 

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

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