錯誤信息
{
"message": "Could not render view \"user\\list\". Tried locating view file @ \"/Users/maxbin/java/git/TDH-CMDS/views/user\\list\". Layout configured as \"layout\", so tried using layout @ \"/Users/maxbin/java/git/TDH-CMDS/views/layout\")",
"code": "E_VIEW_FAILED",
"status": 500,
"view": {
"name": "user\\list",
"root": "/Users/maxbin/java/git/TDH-CMDS/views",
"defaultEngine": "ejs",
"ext": ".ejs"
}
}
原因分析
- 由于項目剛開始在在公司windows系統電腦上寫的,頁面路徑寫死了分隔符"\"
// 跳轉頁面的一個類
module.exports = {
index: function (req, res) {
var param_model = req.param('model');
var param_name = req.param('name', '404');
if(!param_name){
param_name = '404';
}
if(param_model){
return res.view(param_model + "\\" + param_name);
}else{
return res.view(param_name);
}
}
};
- 導致在windows上運行沒有問題,回到家中想繼續寫代碼的時候,在mac上運行發現無法跳轉頁面了,由于報錯信息不明顯,導致調試了一會才找到這個原因;
- 其實如果仔細看報錯信息,細心點還是可以發現路徑不一致的問題
/git/TDH-CMDS/views/user\\list\
修改方法
- 用系統分隔符替換代碼中寫的固定windows分隔符
// 引入nodeJS的path模塊
var path = require("path");
module.exports = {
index: function (req, res) {
var param_model = req.param('model');
var param_name = req.param('name', '404');
if(!param_name){
param_name = '404';
}
if(param_model){
return res.view(param_model + path.sep + param_name);
}else{
return res.view(param_name);
}
}
};
- 總結一下:下代碼還是不要偷懶了,隨手寫的hardcode很可能就是一個坑
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。