在手柄中包含文件内容

时间:2015-09-30 09:57:00

标签: javascript css node.js handlebars.js

是否可以仅使用车把的力量获取一个文件的内容并将其包含在车把模板中?我只是想将内联css插入html。

<html>
  <head>
    <style>
      //here should be insterted content of file path/to/my.css
    </style>
  </head>
  <body>
    {{{ body }}}
  </body>
</html>

我想到的一个解决方案是在nodejs中readFile并将其内容放到res.locals.inlinecss然后只打印它。还有其他想法吗?感谢

更新 hbs express-handlebars使用var exphbs = require('express-handlebars'); var path = require('path'); var fs = require('fs'); var template = fs.readFileSync(path.resolve(__dirname, 'path/to/my.css'), 'utf8'); var hbs = exphbs.create({ defaultLayout: 'main', layoutsDir: path.resolve(__dirname, '../views/layout'), helpers: { cssContent: function(){ return template; } } }); 时使用的<html> <body> <?php wp_footer(); ?> </body> </html> 不支持注册部分内容。我不想改变视图引擎。

UPDATE2: 这就是我解决这个问题的方法。

public void OnActionExecuting(ActionExecutingContext filterContext)
{
    var selectList = new List<SelectListItem>();

    var foos = _repo.Get();
    foreach (var foo in foos)
    {
        var selectItem = new SelectListItem()
        {
            Text = foo.Text,
            Value = foo.Value
        };
        selectList.Add(selectItem);
    }
    filterContext.Controller.ViewBag.SelectList = selectList;
}

我知道它可能更通用,用css查找整个目录,但在这个项目中肯定不会有更多的css文件,然后一个。

0 个答案:

没有答案