我创建了文件:
app.coffee
express = require('express')
routes = require('./config/routes')
app = express.createServer();
require('./config/environment')(app)
require('./config/routes')(app)
app.listen(3000);
配置/ environment.coffee
module.exports = (app) ->
app.configure = () ->
# set view path, template engine and defsult layout
app.set 'view', __dirname + '/views'
app.set 'view engine', 'jade'
app.use(app.router)
配置/ routes.coffee
site = require('../controllers/site.js')
module.exports = (app) ->
app.get '/', site.index
控制器/ site.coffee
exports.index = (req, res) ->
res.render 'main.jade', {title: 'New Article'}
问题出现在site.coffee文件中,因为当我不写'jade'ExpressJS engin这样的扩展名时,尝试使用'undefined'扩展名打开文件。我怎样才能记住环境文件中的视图引擎?
答案 0 :(得分:0)
你不应该需要这一行
app.set 'view engine', 'jade'
正如Express docs所说,它只是允许你省略.jade
扩展名,例如。
res.render 'main', {title: 'New Article'}
我相信你的问题是
行app.set 'view', __dirname + '/views'
您从config/environment.coffee
开始运行。 __dirname
是特定于文件的,因此您将视图目录设置为config/views
- 可能不是您想要的。试着省略那条线;默认值为path.join process.cwd(), 'views'
,我猜是你真正想要的。
此外,虽然您有关于设置“默认布局”的评论,但我没有看到。因此,如果您仍有问题,可以尝试
res.render 'main.jade', {layout: false}