我有一个单页Web应用程序,它在客户端使用骨干,在服务器上使用节点(Sails)。
我目前在客户端使用lodash.underscore作为模板引擎,在服务器上使用kiwi。
我希望通过渐进增强实现pushstate。即客户端和服务器将共享相同的模板文件。
这意味着他们需要使用相同的模板引擎;我已决定使用下划线/ lodash。
在Sails config \ views.js中,它意味着您可以使用下划线作为模板引擎。问题是我无法解决如何做到这一点。我已将它包含在我的package.json中并设置
'engine': 'underscore'
我在启动应用程序时遇到错误 - “Function.app.engine需要回调函数”
如果我将引擎设置为'kiwi','jade','ejs'等,那么它将会起作用。
任何想法都是我做错了什么?
答案 0 :(得分:0)
我不确定我到底知道你的要求,但是,我在服务器端视图中使用了下划线模板,配置如下:
在config/views
中,我将引擎设置为ejs:
engine: 'ejs',
在我的Gruntfile.js
我设置了:
var templateFilesToInject = [
'linker/**/*.ejs'
];
答案 1 :(得分:0)
support Underscore as an engine version 0.3.1和version 0.10.0的Lodash。
Sails.js supports all of the view engines compatible with Express via Consolidate,但将包含Consolidate作为直接依赖关系的Sails的第一个版本是only 0.12.0-rc2。我不确定Sails在此之前是如何管理其他模板引擎的,而是documentation suggests that Underscore has been supported as a view engine since 0.10.0。
您应该验证您使用的Sails版本是否支持Underscore作为视图引擎,并确保在尝试使用它之前npm i --save underscore
。