これは私の 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>
そして、フォルダー構造:
サーバーとインデックスファイルの両方が「パブリック」ディレクトリ内にあるため、単純に使用できます。
res.sendfile('./main.html');
コメントの質問に答えるには:Express 4.xでは、sendfile
メソッドはsendFile
メソッドに置き換えられました(すべて小文字-> camelCase)。おそらく初期バージョンでの見落としでしたが、後者では修正されました。
res.sendfile('/public/main.html');
に変更する必要があります
res.sendfile('./public/main.html');
このソリューションは私のために働く:
res.sendfile('./main.html');
dist
フォルダーを参照したときに同様の問題が発生しました。 index.htmlへの相対パスは次のとおりです。
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/project-name/index.html'));
});
ドットを見逃しました。相対ディレクトリは
res.sendfile('./public/main.html');
これを使うだけです:res.sendFile(__dirname + '/main.html');
それは間違いなく動作します。 :)
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);
「。」を使用している私にとってパスでは機能しませんでしたが、代わりに次のように微調整しました:
res.sendFile(__dirname + '/public/main.html');
同じ問題がありました。 herokuにメールを送信した後、私の問題は大文字と小文字の区別の問題でした。ファイルの1つがすべて大文字になっていたので、そこから調整する必要がありました。