我在使用 gulpserve/r 任务连接 Express 服务器时遇到问题。为了将我的 View 发送到 DOM,我需要 express 来做到这一点。我希望我的服务器作为 gulp 任务运行。服务器运行,但是当我尝试访问本地 url 时,它在浏览器中运行错误:
Error: Failed to lookup view "index" in views directory "C:\Users\User Name\Documents\project\src\scripts"
我的app.js
var http = require('http');
var express = require('express');
var exphbs = require('express-handlebars');
var path = require('path');
var hbs = exphbs.create({ /* config */ });
var app = express();
//environment variable
var port = process.env.PORT || 8000;
// static files + template engine
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
app.set('views', path.join(__dirname, '../scripts'));
app.use('/public', express.static(__dirname + '/public'));
//http request method get json list
app.get('/', function(req, res) {
res.render('index');
});
app.listen(port);
我的文件结构如下所示:
project
|-- src
| |-- css
| |-- scripts
| |-- app.js
| |-- index.html
我错过了什么?
最佳答案
您应该更改此设置:
app.set('views', path.join(__dirname, '../scripts'));
对此:
app.set('views', path.join(__dirname, '..'));
这是因为 index.html
文件驻留在 src
目录中,该目录是脚本所在的 scripts
目录的父目录已执行。
关于javascript - 使用 Express 服务器和 gulp 查找 View 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005598/