在sails.js中,views文件夹中的所有文件都使用layout.ejs作为模板 像404.ejs这样的错误页面由于某种原因不会使用layout.ejs。
我找不到任何设置,我可以更改它吗?
谢谢!
如果需要,指向存储库的链接: http://github.com/ronenteva/MySkills
答案 0 :(得分:5)
Sails v0.10.x使用notFound
响应来提供404页面,相当于在控制器操作中调用res.notFound()
。我们在api/responses/notFound.js
中为您提供了默认的响应处理程序,但您可以自定义它以执行任何操作,包括使用res.view()
为布局提供404页面。默认代码使用res.render
而不是res.view
,因为默认404.ejs
有自己的布局。
自定义回复的文档为here。
在Sails v0.9中,您可以修改views/404.ejs
文件,然后编辑config/404.js
文件以使用res.view
代替res.render
如果您喜欢已更新404.ejs
以使用您的默认布局。
答案 1 :(得分:1)
由于我遇到同样的问题,但是因为403错误,我发现了你的帖子。 不幸的是,自从Sails 0.11开始,事情发生了变化,这个解决方案不再适用了......
经过一番努力,解决方案非常简单
只需编辑.js
文件夹中相应的forbidden.js
文件(notFound.js
,api/responses
等),即可在任何return
来电之前添加(为什么不呢?在res.status()
,mmmh?之后,这个:
res.locals.layout = 'myLayout';
假设您将布局文件命名为myLayout.ejs
。
如果您更喜欢使用默认布局,请将'myLayout'
替换为false
。
这是:)