有没有一种方法可以将ejs文件的文件扩展名保留为.html?

4

我正在使用ejs模板引擎开发一个expressjs应用程序。但是我想保留ejs文件的扩展名,比如home.html而不是使用home.ejs。原因是我正在使用visual studio进行开发,而visual studio不支持ejs文件。因此,代码提示、格式化和高亮显示都无法工作。

var express = require("express");
var app = express();


app.set("view engine", "ejs");//setting ejs view engine
app.set("views", "./views");

app.get("/", function (req, res) {
    res.render("home");
});

app.listen(3000, function () {
    console.log("Server is listening on port 3000");
})

2
为什么不配置Visual Studio,让它知道.ejs文件应该被视为.html,而要这样做呢?这似乎是在问错了问题。 - loganfsmyth
我认为@loganfsmyth是正确的,你需要配置你的VS来承认.ejs文件,这样它就会将该文件视为html。 - Eko Junaidi Salam
4个回答

2

我设法解决了这个问题,我的代码类似于@homam的答案,但我会更完整地编写代码

const http = require('http');
const path = require('path');
const express = require('express');
const engine = require('ejs');
const app = express();

app.engine('html', engine.__express);
app.set('views', path.join(__dirname, './views'));
app.set('view engine', 'html');

//this route will open profil.html in folder ./views
app.get('/', (req, res) => {
  //render file profil.html
  res.render('profil', {
    name: 'Danang Ponorogo'
  });
});

var server = http.createServer(app);
server.listen(3001, () => {
  console.log('Server is running at port 3001');
});

希望这可以帮助您。谢谢。

嵌入式JavaScript模板[https://ejs.co] - Danang Ponorogo

0

我在使用Visual Studio处理ejs文件时遇到了类似的问题。我认为最好的方法是通过菜单 - 工具 ->选项 ->文本编辑器 ->文件扩展名,将ejs文件扩展名添加到HTML编辑器中,以便Visual Studio将其解释为html文件。 截图


0

使用ejs npm模块的app.engine('.html', require('ejs').__express);

app.engine('.html', require('ejs').__express);
app.set('view engine', 'ejs');

你知道我们是否可以使用JS文件做同样的事情吗?因为app.engine('.js',require('ejs').__ express);似乎不起作用。 - João Pimentel Ferreira
当我在我的index.html文件中使用小的ejs时,它似乎对我不起作用,就像这样: `<% if (!user) { %><p>你好</p> <% } %> ` - fsljfke

0

你可以使用app.engine(ext, callback)

在视图引擎和视图设置中,将以下内容设置在靠近顶部的位置:

app.engine('html', require('ejs').renderFile);

然后当您调用res.render时,唯一的区别是您需要指定扩展名:

app.get('/',function(req,res){
    res.render("home.html", { myString: "I'm a normal string!" });  
});

你会发现在 .ejs 文件中,<%=myString%> 会被处理成你所期望的方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接