2017-11-22 20 views
0

Ich benutze NodeJS, Express und Lenker.Einstellen der Verzeichnisverwaltung in Express Lenker bis

Meine Server-Datei app.js

const express = require('express'); 
const exphbs = require('express-handlebars'); 

const app = express(); 

app.engine('handlebars', exphbs({defaultLayout: 'index'})); 
app.set('view engine', 'handlebars'); 

app.get('/start', function (req, res) { 
    res.render('start'); // render the "start" template 
}); 

app.listen(8888, function() { 
    console.log('Server running on port 8888'); 
}); 

Also, wenn in der Route vorbei localhost:8888/start sollte es meine index.handlebars

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Foo</title> 
</head> 

<link href="../../CSS/requirements.css" rel="stylesheet"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 

<body> 

    <p>TEST - This is on all pages</p> 

{{{body}}} 

</body> 
</html> 

und die Vorlage laden (start.handlebars)

<script src="../Client/start.js"></script> 

<p>Template 1 is active</p> 

Meine Verzeichnisstruktur e

Directory

Wenn der Server ausgeführt wird, wird das Laden meiner Route in Ordnung, aber das Problem ist, dass der Browser nicht in der Lage ist, die Skript und CSS-Dateien zu finden.

Browser

Ich habe meine Wege, aber ich denke, dass sie richtig sein könnte. Liege ich falsch?

Antwort

1

Sie müssen static Ordner in Ihrer express App einstellen. In folgenden Middleware

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

direkt nach

app.set('view engine', 'handlebars'); 

Erstellen Ihnen einen Ordner auf Ihrer Root-Ebene und bewegen Sie Client und CSS Ordner in diesen public Ordnern.

Ref: Link

Verwandte Themen