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

时间:2015-03-01 17:46:09

标签: javascript node.js handlebars.js sails.js

我使用带把手的风帆0.10.5。

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

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

我已经设置了我想要使用的扩展程序,但是当风帆渲染视图时它没有被使用。这是我在进入索引路径时在浏览器中获得的内容。

{
  "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'

之前有没有人解决过这个问题,或者有任何想法?

1 个答案:

答案 0 :(得分:4)

哎呀,看起来这个文档有点偏僻。谢谢你指出来。

要使用自定义文件扩展名,您需要在engine属性中指定自定义视图引擎。要为Handlebars执行此操作,请执行以下操作:

npm install handlebars
npm install consolidate

并在config/views.js中执行:

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