这是我的server.js
文件:
var express = require('express'),
app = express();
app
.use(express.static('./public'))
.get('*',function (req,res) {
res.sendfile('/public/main.html');
})
.listen(3000);
这是我的main.html
:
<!DOCTYPE html>
<html>
<head>
<titel>Contacts</titel>
<base href'/'>
</head>
<body>
<div class="container">
<div class="page-header">
<h1>Contatcs</h1>
</div>
</div>
</body>
</html>
文件夹结构:
答案 0 :(得分:6)
由于服务器和索引文件都位于“public”目录中,因此您只需使用:
res.sendfile('./main.html');
要回答评论中的问题:在Express 4.x中,sendfile
方法已替换为sendFile
方法(全部小写 - &gt; camelCase)。可能只是早期版本的疏忽,后者得到了修复。
答案 1 :(得分:1)
你错过了点。请记住相对目录是
res.sendfile('./public/main.html');
答案 2 :(得分:1)
res.sendfile('/public/main.html');
应改为
res.sendfile('./public/main.html');
答案 3 :(得分:1)
此解决方案适用于我:
res.sendfile('./main.html');
答案 4 :(得分:1)
当我提到kubectl logs -n kubeless -l kubeless=controller
文件夹时,我遇到了类似的问题。
index.html的相对路径为:
dist
答案 5 :(得分:1)
server.js
const express = require('express');
const app = express();
app.use(express.static(__dirname + '/dist/projectName'));
app.post('/*', function(req, res){
res.sendFile(__dirname + '/dist/projectName/index.html');
});
app.listen(4200);
答案 6 :(得分:0)
我遇到了同样的问题。通过电子邮件发送heroku后,我的是一个区分大小写的问题。我的一个文件是全部大写,我不得不从那里做出调整。
答案 7 :(得分:0)
对我来说使用“。”在路径中没有用,相反,我把它调整为:
res.sendFile(__dirname + '/public/main.html');
答案 8 :(得分:0)
只需使用:[[ ... ]]
肯定会的。 :)
答案 9 :(得分:0)
我有同样的问题。看来我的客户端代码与我的服务器代码不“同步”(我不太了解node / express / angular的内部工作原理以及它们如何相互影响,所以“同步”是我所能做到的最好的做)。我只是用以下方法重建了服务器代码(添加了一个nodejs库并更新了另一个库之后,包括其他服务器代码更改):
npm run build.server
(对于我的项目,它仅构建服务器端。在测试服务器更改时有时会运行此操作,因为在没有监视的情况下重建客户端代码也可能需要很长时间)
一旦我重建了客户端代码,这个问题就解决了:
npm run build -- dev
(对于我的项目,它会构建所有内容,服务器和客户端代码)
答案 10 :(得分:-1)
虽然OP的原因因此错误而有所不同,但由于其他原因我得到了相同的错误,因此我将其发布给其他来到这里的人。
我有一个服务器端shell脚本正在更改当前目录。由于我们在""
中使用相对路径,因此在此脚本运行后我开始看到此错误。这个shell脚本由Node运行。
答案 11 :(得分:-1)
我的server.js
const express = require('express');
const app = express();
app.use(express.static(__dirname + '/dist/projectName'));
app.get('/*', function(req, res){
res.sendFile(__dirname + '/dist/projectName/index.html');
});
app.listen(4200);