2017-01-11 9 views
0

Ich benutze Express-Lenker, um einige HTML-Seiten zu rendern. Der Browser findet nicht die CSS-Dateien, mit denen ich verlinke. Diese ist, was mein Server-Datei wie folgt aussieht:CSS-Dateien nicht gefunden mit Express-Lenker

const express = require('express'); 
const exphbs = require('express-handlebars'); 
const path = require('path'); 
const _ = require('lodash'); 
const bodyParser = require('body-parser'); 
const socketIO = require('socket.io'); 
const http = require('http'); 
var static = require('node-static'); 

var {mongoose} = require('./db/mongoose.js'); 

var {User} = require('./models/user'); 

const publicPath = path.join(__dirname, '../public'); 
var app = express(); 
app.engine('handlebars', exphbs({defaultLayout: 'main'})); 
app.set('view engine', 'handlebars'); 
var server = http.createServer(app); 
var io = socketIO(server); 
const port = process.env.PORT || 3000; 

app.use('/', express.static(publicPath)); 
app.use(bodyParser.json()); 

app.get('/', (req, res) => { 
    res.render('home'); 
}); 

Und das ist, wie ich die URLs auf meinem Haupt-Layout formatiert haben:

<link rel="stylesheet" href="views/assets/bootstrap/css/bootstrap.min.css"> 

Das Vermögen Ordner ist in der Wurzel der Ansichten Ordner . Wie kann ich das beheben?

Edit: This is my directory structure.

+0

Können Sie komplette Verzeichnisstruktur teilen? Und was ist mit dem relativen Pfad in 'href'? –

+0

Ich habe gerade meine Verzeichnisstruktur zum Beitrag hinzugefügt. Ich habe auch relative Pfade versucht, wie 'href ="/assets/bootstrap/css/bootstrap.min.css "', aber das hat nicht funktioniert. –

Antwort

0

Ihre statischen Pfad ändern.

const publicPath = path.join(__dirname, '../views'); 

Auch Änderung href in html Datei

<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css"> 
Verwandte Themen