我正在尝试将项目从0.9.9迁移到0.10.5
我们在我们的项目中使用了灰尘模板引擎而不是默认的ejs引擎。
config / views.js文件的内容
module.exports.views = {
engine: 'dust',
layout: 'layout'
};
在我的控制器中,我能够像这样呈现这个视图
res.view('layout', obj);
然而,在风帆0.10.5中,当我举起帆时,首先我得到了这个警告
warn: Sails' built-in layout support only works with the `ejs` view engine.
warn: You're using `dust`.
warn: Ignoring `sails.config.views.layout`...
然后,当我尝试按照之前的方式渲染视图时,出现以下错误:
error: Sending 500 ("Server Error") response:
Error: ENOENT, open '/.dust'
{ [Error: ENOENT, open '/.dust'] errno: 34, code: 'ENOENT', path: '/.dust' }
知道在0.10.5中执行此操作的正确方法是什么?
答案 0 :(得分:1)
layout
属性不适用于灰尘(仅适用于ejs)。将布局设置为false
以使警告消失。无论如何,你想使用Dust的内置支持部分和阻止。
使用res.view('layout', obj);
表示您希望存在名为views/layout.dust
的文件。在0.10之前,sails包含来自config / views.js的layout
属性作为路径的一部分。
所以我最好的猜测是,您的res.view()
调用实际上是以空字符串作为第一个参数调用的,并且它没有因为您尝试渲染名为layout
的内容而中断。我会检查您的调用,以确保您使用实例化变量调用res.view()
。