根据ExpressJS application settings documentation,您应该能够将views
设置为视图引擎的目录。我正在经历我认为可能是一个错误;而不是查看views
目录,快速查看static
目录。显然它失败了,因为它不在那里。我已经通过将视图移动到静态目录中来确认这一点,并且错误消失了。
您可以通过克隆this Cloud9 project来查看此错误。我无法在Cloud9之外确认这个错误,(我没有可用的Linux机箱)。
目录结构很简单
项目
|-client
|-assets
|-views
|-index.html
|-server.js
这是服务器配置
var viewDir = __dirname + '/client/views/';
var assetDir = __dirname + '/client/assets/';
//Configure
app.configure(function() {
app.set('views', viewDir);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express['static'](assetDir));
app.use(app.router);
});
app.get('/', function(req, res){
res.render('index');
});
答案 0 :(得分:4)
您需要通过设置引擎来告诉它如何渲染。
如echo:
app.engine('.html', function (file, options, next) {
fs.readFile(file, function (err, data) {
if (err) {
next(err);
} else {
next(null, data.toString());
}
});
});
如果您希望app.get('/' . . .
占据主席,您还需要app.use(express.static
。{/ p>
您可以在此处试用:http://runnable.com/UWTRSNJq0z5OAADk
答案 1 :(得分:2)
Html文件是静态文件,而视图中的文件必须由模板引擎呈现,如jade或ejs。如果要渲染html文件,请检查这些问题。
模板引擎动态呈现视图。如果你只有静态页面,那么你就不需要了。但如果您有动态内容,则必须使用模板。