设置 Sails js 视图扩展不起作用

Setting Sails js view extension doesn't work

我正在使用带车把的 sails 0.10.5。

我希望我所有的车把模板都使用扩展名 .hbs 而不是 .handlebars。我在 sails 文档中读到,您可以在 config/views 中设置 extension 属性 来更改渲染视图时 sails 将查找的文件扩展名。

http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.views.html

我已经设置了我想使用的扩展,但是当 sails 渲染视图时它没有被使用。这是我转到索引路线时在浏览器中得到的内容。

{
  "message": "Could not render view \"index\".  Tried locating view file @ \"/Users/jeff/Sites/bcsm/views/index\".",
  "code": "E_VIEW_FAILED",
  "status": 500,
  "view": {
    "name": "index",
    "root": "/Users/jeff/Sites/bcsm/views",
    "defaultEngine": "handlebars",
    "ext": ".handlebars"
  }
}

这是我的配置:

module.exports.views = {
  engine: 'handlebars',
  layout: false,
  ext: '.hbs'
};

我也试过以下但没有成功:

extension: 'hbs'
extension: '.hbs'
ext: 'hbs'

有没有人解决过这个问题,或者有什么想法?

哎呀,看起来文档在那个方面有点偏离。感谢您指出。

为了使用自定义文件扩展名,您需要在 engine 属性 中指定自定义视图引擎。要为 Handlebars 这样做,请执行:

npm install handlebars
npm install consolidate

并在 config/views.js 中执行:

engine: {
  ext: 'hbs',
  fn: require("consolidate").handlebars
}