2016-12-22 4 views
1

Ich versuche, auf Dateien zuzugreifen, die sich in meinem öffentlichen Ordner befinden, mithilfe von Express. Meine Dateistruktur sieht wie folgt ausZugriff auf Dateien in meinem Öffentlichen Ordner in node.js express

/app 
-app.js 
/routes 
    -index.js 
/public 
    /images 
    /misc 
    -background.jpg 
    /css 
    -style.css 

Mein app.js auf Port läuft ,

app.use(express.static('app/public')); 
app.use(require('./routes/index')); 

und index.js nicht background.jpg finden oder style.css

router.get('/',function(req,res){ 
res.send(` 
<link rel="stylesheet" type="text/css" 
    href="css/style.css"> 
<h1>Welome</h1> 
<img 
src="/images/misc/background.jpg" 
style="height:300px;"/> 
<p>some text</p>`); 
}); 

module.exports = router; 

Ich gehe von der Dokumentation, also habe ich keine Ahnung, warum das nicht funktioniert.

+0

so, wenn Sie 'http: // localhost : 3000/css/style.css', was genau verdienst du ***? –

+0

Kann /css/style.css nicht abrufen – crod

Antwort

1

Als Ihr app.js und public Ordner sind in der App-Ordner, die Sie benötigen, um den href Wert beinhalten nicht die app Ordner in express.static('app/public') und auch verwenden path.resolve wie unten,

var path = require('path'); 

app.use(express.static(path.resolve('./public'))); 

Ändern Sie auch unten an href="/css/style.css",

<link rel="stylesheet" type="text/css" 
    href="/css/style.css"> 
+0

Ich bin mir nicht sicher, warum es funktioniert hat, aber es hat. – crod

+0

Ich habe Ihnen den Grund oben in meiner Antwort erklärt. Es erfordert absoluten Pfad. Sie können also path.resolve verwenden, um den aktuellen Pfad in den absoluten Pfad zu konvertieren. Der aktuelle Pfad sollte der relative Pfad zur app.js-Datei und zum öffentlichen Ordner sein. – Aruna

1

erfordern Pfadmodul in app.js:

var path=require('path'); 

ändern Middleware für statische Inhalte:

app.use(express.static(path.join(__dirname,'public'))); 

Link zu Ihrer CSS wie folgt aus:

<link rel="stylesheet" type="text/css" href="/css/style.css"> 
Verwandte Themen