gpt4 book ai didi

node.js - 从同一目录提供静态内容和 View ?

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

是否可以从同一目录提供静态内容和 View ?我在下面找到了部分解决方案:

//Enable Express static content serving:  
app.use(express.static(__dirname + '/html')); //Static path is folder called html

//Also enable EJS template engine:
app.engine('.html', require('ejs').__express);
app.set('views', __dirname + '/html'); //Set views path to that same html folder
app.set('view engine', 'html'); //Instead of .ejs, look for .html extension

//Start server
app.listen(8000);

//Express routes:
app.get('/', function(req,res) {
res.render('index', { message: 'hello world'});
//this only serves static index.html :(
});

app.get('/home', function(req,res) {
res.render('index', { message: 'hello world'}); //<-- this serves EJS
//whoo-hoo! serves index.html with rendered EJS 'hello world' message
});

除了不呈现 EJS 的第一条路线“/”外,这工作得很好。所有其他路由(/home、/about 等)将方便地与静态内容一起提供动态 EJS。无论如何要欺骗第一个'/'以相同的方式工作?

最佳答案

对于 Express 3.x,尝试将路由器放在静态之前:

 app.use(app.router);
app.use(express.static(path.join(__dirname, 'html')));

对于 Express 4.x,路由器已被弃用,但概念与路由一样,就像中间件一样,因此您应该能够在静态中间件之前调用它们。

关于node.js - 从同一目录提供静态内容和 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105801/

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