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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions