-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EJS] Error: Failed to lookup view "home-guest" in views directory "views" #34
Comments
可以檢查一下 views 的權限 是說 express 有 6 OAO? |
感謝!還在研究你這段
|
是不是沒擷取完整(? |
|
路徑啊!看一下 Error message |
不好意思⋯⋯ |
用 DEBUG 開,然後... |
是的,我照你的方式做了
|
這樣原因就很清楚 你可以在 node 的 REPL 裡面試試看這一段 const fs = require('fs')
fs.statSync('/Users/henry/Desktop/complex_app/views/home_guest.ejs').isFile() 這邊參考到的是 function tryStat(path) {
debug('stat "%s"', path);
try {
return fs.statSync(path);
} catch (e) {
return undefined;
}
} |
其實整個的思路是這樣 稍微往上找一下會進這邊的條件是 #L576 的 稍微往下翻一點點會看到他在做 lookup (翻譯起來算尋找(? 不知道怎麼翻好) 繼續往下看就會看到 View.prototype.resolve = function resolve(dir, file) {
var ext = this.ext;
// <path>.<ext>
var path = join(dir, file);
var stat = tryStat(path);
if (stat && stat.isFile()) {
return path;
}
// <path>/index.<ext>
path = join(dir, basename(file, ext), 'index' + ext);
stat = tryStat(path);
if (stat && stat.isFile()) {
return path;
}
}; 然後就會知道他對檔案的判斷是這一塊 function tryStat(path) {
debug('stat "%s"', path);
try {
return fs.statSync(path);
} catch (e) {
return undefined;
}
} 那接下來要做驗證就很簡單了 然後你可以再把專案的路徑跟結構貼上來看看,說不定就會發現點什麼 |
但你 code 裡面還是 _ 啊 OAO |
把這段的路徑 const fs = require('fs')
fs.statSync('/Users/henry/Desktop/complex_app/views/home_guest.ejs').isFile() 換成你上面 stat 給的那個路徑(直接複製貼上)跑跑看吧? |
@henry1491491 把專案放上 github,別人會比較方便幫忙看問題 |
馬上補!專案 |
@henry1491491 你 你實際檔案路徑是 改名後就可正常運作 |
感謝!,問題已解決,結果竟然是空格的問題⋯⋯ |
感謝使用 Node.js Taiwan AMA,以下附上簡單提問範例供參考,請把內容改成你自己遇到的問題
目的
目前學習的線上課程在做一個結合 Express + ejs 的網站,在設定 ejs 的時候跳出錯誤訊息
使用的工具
目前開發環境:
專案連結
連結
操作流程
這是我的詳細步驟
及我的目錄如下
遇到的問題
打開 localhost:3000 顯示
嘗試過的解法
我上 stack overflow 找了許多類似問題的解決方式,比如:
app.set('views', 'views')
改成app.set('views', './views')
res.render('home-guest')
改成res.render('home-guest.ejs')
也試著改成
但卻跳出一樣的結果。
也有想過是否因為 home-quest.ejs 這隻檔案裡面都是 HTML,沒有任何
<% %>
ejs 的東西程式碼
以下是照著教學影片做到設定 EJS 樣板引擎這邊的完整程式碼(沒有自己更動過),然後就跳出錯誤
找了老半天,卻不知道問題出在哪裡,在此尋求各位幫助,十分感激!
The text was updated successfully, but these errors were encountered: