webentwicklung-frage-antwort-db.com.de

Fehler: ENOENT: Keine solche Datei oder Verzeichnis, stat '/public/main.html' bei Error (native)

Dies ist meine server.js-Datei:

var express = require('express'),
    app = express();  
app 
    .use(express.static('./public'))
    .get('*',function (req,res) {
        res.sendfile('/public/main.html');
        })
 .listen(3000);

Dies ist mein 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>

Und die Ordnerstruktur:

15
pradeep murugan

Da sowohl der Server als auch die Indexdatei INSIDE das "public" -Verzeichnis sind, können Sie einfach Folgendes verwenden:

res.sendfile('./main.html');

Um die Frage in den Kommentaren zu beantworten: In Express 4.x wurde die sendfile-Methode durch die sendFile-Methode (alle Kleinbuchstaben -> camelCase) ersetzt. Wahrscheinlich nur ein Versehen in frühen Versionen, das in letzterer behoben wurde.

6
Bernard Saucier
res.sendfile('/public/main.html');

sollte in geändert werden 

res.sendfile('./public/main.html');
1
Guy Korland

Diese Lösung funktioniert für mich:

res.sendfile('./main.html');
1
Niloo

Ich hatte ein ähnliches Problem, als ich auf dist folder ..__ verwies. Der relative Pfad zu index.html war:

app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/project-name/index.html'));
});
1
akshaymittal143

Benutze einfach folgendes: res.sendFile(__dirname + '/main.html'); Es wird definitiv funktionieren. :)

1
pbhadu
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);
1
pranav rai

Sie haben das dot verpasst. Beachten Sie das relative Verzeichnis 

res.sendfile('./public/main.html');
1
vkstack

Ich hatte das gleiche Problem. Nachdem ich Heroku eine E-Mail geschickt hatte, war mein Fall ein Problem mit der Empfindlichkeit. Eine meiner Dateien war in Großbuchstaben, und ich musste von dort aus Anpassungen vornehmen. 

0
jared thomas

Für mich mit dem "." im Pfad funktionierte nicht, stattdessen habe ich es angepasst:

res.sendFile(__dirname + '/public/main.html');
0
Shubham joshi