2016-03-31 12 views
10

Errore: ENOENT: Nessun file o directory, stat '/public/main.html' in errore (nativo)

Questo è il mio server.js di file:

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

Questo è il mio 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> 

E la struttura della cartella:

+0

Sembra che il percorso di "" /public/main.html "" sia errato. –

risposta

1

Dato che sia il server e il file di indice sono all'interno della directory "pubblica", si può semplicemente utilizzare:

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

Hai perso il punto. Tenete a directory relativa mente è

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

dovrebbe essere cambiata a

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

Ho avuto lo stesso problema. Dopo aver inviato un'email a heroku, il mio era un problema di maiuscole e minuscole. Uno dei miei file era in maiuscolo e ho dovuto apportare modifiche da lì.

-1

Anche se la causa dell'OP è diversa per questo errore, ho ricevuto lo stesso errore a causa di un motivo diverso, quindi sto postando questo per gli altri che vengono qui.

Avevo uno script di shell sul lato server che stava cambiando la directory corrente. Poiché utilizziamo i percorsi relativi in ​​sendfile ho iniziato a vedere questo errore dopo l'esecuzione di questo script. Questo script di shell veniva eseguito da Node.

0

Questa soluzione funziona per me:

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

Per me utilizzando il "" nel percorso non ha funzionato, invece, l'ho ottimizzato come:

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

Quale valore rappresenta "__dirname"? – Taegost

Problemi correlati