gpt4 book ai didi

node.js - 如何使用 Express 4 渲染 Swig 模板?

转载 作者:搜寻专家 更新时间:2023-10-31 23:12:43 24 4
gpt4 key购买 nike

我无法将 Swig 模板与 Express for Node 一起使用。我收到以下错误:

Error: Failed to lookup view "index" in views directory

Swig 模板没有被编译成 .html 文件

我的代码如下:

var express = require('express');
var cons = require('consolidate');
var swig = require('swig');
var app = express();

//Set template engine
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views')


// Disable Express's and Swig Cache
app.set('view cache', false);
swig.setDefaults({ cache: false });

app.get('/', function(req, res){
res.render('index', {'title': 'Design'});
});

app.listen(3000);

最佳答案

我刚刚遇到了同样的问题。为了使用带有 swig 扩展的 swig 模板,您可以按照 swig Docs 进行操作。然后将以下两行替换为
app.engine('html', cons.swig);
app.set(' View 引擎', 'html');

app.engine('swig',swig.renderFile);
app.set(' View 引擎', 'html');

应该看起来像这样。

var express = require('express');
var swig = require('swig');
var app = express();

// view engine setup
// This is where all the magic happens!
app.engine('swig', swig.renderFile);
app.set('view engine', 'swig');
app.set('views', path.join(__dirname, 'views'));
app.set('view cache', false);
swig.setDefaults({ cache: false });

Expressjs 4.x docs app.engineapp.engine 接受一个扩展和一个回调。因此,所有找到的带有 swig 扩展名的文件都有一个 swig.renderFile 的回调。每个文件都生成为 HTML。

Expressjs 4.x docs app.setview engine 设置为 swig 就是将默认引擎扩展设置为在省略时使用。我们还说所有的 View 都可以在 /blaha/blaha/blah/views 目录中找到。

注意:views 目录中的所有文件必须以 int .swig 结尾。因此,友情提示确保当您“包含”或引用另一个模板时,您必须将文件名和扩展名放在路径中。例如:layout.swig。我希望这能让您的项目顺利进行。

关于node.js - 如何使用 Express 4 渲染 Swig 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29211813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com