我想在Express.js中呈现静态html,但仍然有app.get()方法用于逻辑
这似乎是一件很可笑的事情,但我想从我想在Express.js中呈现静态html,但仍然有app.get()方法用于逻辑,html,node.js,express,static,Html,Node.js,Express,Static,这似乎是一件很可笑的事情,但我想从app.get()方法中显示html文件。似乎我遇到的每个答案都使用了解决方案app.use(express.static(uu dirname+/public)),但这不允许来自服务器的逻辑 我想做的是让我的.html文件由express呈现,这样我可以保留一些基本逻辑: app.get('/', function(res, req) { if (condition) { res.render('this.html'); } else {
app.get()
方法中显示html文件。似乎我遇到的每个答案都使用了解决方案app.use(express.static(uu dirname+/public))代码>,但这不允许来自服务器的逻辑
我想做的是让我的.html文件由express呈现,这样我可以保留一些基本逻辑:
app.get('/', function(res, req) {
if (condition) {
res.render('this.html');
}
else {
res.render('that.html');
}
}
在我看来,这只是针对模板文件的,而且我一定没有看到一些简单的东西来实现这一点,这太傻了
编辑:使用sendFile似乎不允许HTML包含外部文件javascript/css。您可以使用res.sendFile()(res.sendFile()用于新版本)来呈现HTML文件
评论中问题的更新:
您可以在html文件中包含css和javascript文件(您可能需要为资源指定正确的路径以加载它们):
啊,等等!这似乎没有加载我的源代码javascript和样式表,有办法解决吗?啊,是的,我需要添加回一行:app.use(express.static(_udirname+“/public”);到我的服务器
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script src="myscripts.js"></script>
</head>