我在mac book air中创建了一个sails.js Web应用程序。我测试了它并确保它运行顺利。但是在我将应用程序部署到linux服务器之后,当我尝试访问特定的URL时,我收到了500个内部服务器错误。错误信息如下所示:
error: Sending 500 ("Server Error") response:
Error: Failed to lookup view "board/index" in views directory "/sites/ZhongShuo/views"
at Function.app.render (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/application.js:512:17)
at ServerResponse.res.render (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/response.js:827:7)
at Object.module.exports.index (/sites/ZhongShuo/api/controllers/BoardController.js:10:7)
at bound (/sites/ZhongShuo/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at routeTargetFnWrapper (/sites/ZhongShuo/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
at param (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:135:11)
at pass (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:145:5)
at nextRoute (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:100:7)
at callbacks (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:167:11)
at /sites/ZhongShuo/node_modules/sails/lib/router/bind.js:187:7
at alwaysAllow (/sites/ZhongShuo/node_modules/sails/lib/hooks/policies/index.js:207:11)
at routeTargetFnWrapper (/sites/ZhongShuo/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/sites/ZhongShuo/node_modules/sails/node_modules/express/lib/router/index.js:138:11) { [Error: Failed to lookup view "board/index" in views directory "/sites/ZhongShuo/views"]
view:
{ name: 'board/index',
root: '/sites/ZhongShuo/views',
defaultEngine: 'ejs',
ext: '.ejs',
engine: [Function],
path: undefined } }
Board.ejs文件确实存在于/ sites / ZhongShuo / views / Board /目录中。我只是无法弄清楚为什么会出现这种错误。
答案 0 :(得分:1)
这几乎肯定是一个区分大小写的问题。您的MacBook不区分大小写,因此它将board.ejs
和Board.ejs
视为同一个文件,但您部署的Linux的风格区分大小写,并将它们视为不同。将代码更改为res.view('Board')
或(我的建议)将文件名更改为全部小写。