Skip to content

[EJS] Error: Failed to lookup view "home-guest" in views directory "views" #34

@henry1491491

Description

@henry1491491

感謝使用 Node.js Taiwan AMA,以下附上簡單提問範例供參考,請把內容改成你自己遇到的問題

目的

目前學習的線上課程在做一個結合 Express + ejs 的網站,在設定 ejs 的時候跳出錯誤訊息

使用的工具

目前開發環境:

  • 作業系統: macOS Catalina 版本 10.15
  • Node 版本:v10.16.0
  • Express:6.12.0
  • EJS:6.12.0

專案連結

連結

操作流程

這是我的詳細步驟
及我的目錄如下

截圖 2019-10-28 下午6 47 24

遇到的問題

打開 localhost:3000 顯示

Error: Failed to lookup view "home-guest" in views directory "views"
    at Function.render (/Users/henry/Desktop/complex_app/node_modules/express/lib/application.js:580:17)
    at ServerResponse.render (/Users/henry/Desktop/complex_app/node_modules/express/lib/response.js:1012:7)
    at /Users/henry/Desktop/complex_app/app.js:10:7
    at Layer.handle [as handle_request] (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/layer.js:95:5)
    at /Users/henry/Desktop/complex_app/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/henry/Desktop/complex_app/node_modules/express/lib/router/index.js:275:10)

嘗試過的解法

我上 stack overflow 找了許多類似問題的解決方式,比如:

  • app.set('views', 'views') 改成 app.set('views', './views')
  • res.render('home-guest') 改成 res.render('home-guest.ejs')
    也試著改成
const express = require("express")
const path = require("path")
const app = express()

app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')

app.get('/', function (req, res) {
  res.render('home-guest')
})

app.listen(3000)

但卻跳出一樣的結果。
也有想過是否因為 home-quest.ejs 這隻檔案裡面都是 HTML,沒有任何 <% %> ejs 的東西

程式碼

以下是照著教學影片做到設定 EJS 樣板引擎這邊的完整程式碼(沒有自己更動過),然後就跳出錯誤

const express = require("express")
const app = express()

app.set('views', 'views')
app.set('view engine', 'ejs')

app.get('/', function (req, res) {
  res.render('home-guest')
})

app.listen(3000)

找了老半天,卻不知道問題出在哪裡,在此尋求各位幫助,十分感激!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions