使用Express版本4.15.2时,浏览器中出现以下(显然常见的)错误--- 500错误:无法在Function.app.render中查找视图“index”。我已经阅读了为几个这样的受害者提供的解决方案,但是我的__dirname值确实指向了正确的views文件夹,而'views'的正确路径确实构建在我在Windows中使用的app.js文件中命令行(即>节点app.js)。我注意到的唯一奇怪的是,views文件夹中的'index'文件名为'index.jade'。我用的是帕格而不是玉。事实上,有没有使用过Jade已经停产?这可能是问题吗?现在是否应该为Windows添加'.pug'扩展名,或者根本没有扩展名?
根据您的要求查看配置(虽然,它非常标准,我没有更改除了'jade','pug'),以下是我在app.js中看到的唯一配置。 (并且将视图引擎从'jade'更改为'pug'摆脱了找不到'jade'的错误。)
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' === app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
答案 0 :(得分:0)
是的,的确,我所要做的就是将扩展名.jade更改为索引和布局文件上的扩展名.pug,这样就解决了问题。因此,问题不是__dirname;这确实是正确的。问题是它不喜欢.jade扩展名。
感谢anwyay的想法。