2016-03-29 23 views
2

Sadece bir varsayılan Node.js Express Projesi oluşturdum. Index.ejs dosyası bana şu hatayı veriyor:Node.js Tanımsız CSS dosyası

Tanımsız CSS dosyası ('/stylesheets/style.css').

İşte
<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= title %></title> 
    <link rel='stylesheet' href='/stylesheets/style.css' /> 
    </head> 
    <body> 
    <h1><%= title %></h1> 
    <p>Welcome to <%= title %></p> 
    </body> 
</html> 

app.js dosyasındaki ilgili kod nedir bence: Burada

index.ejs olduğunu

var express = require('express') 
    , routes = require('./routes') 
    , user = require('./routes/user') 
    , http = require('http') 
    , path = require('path'); 

var app = express(); 

// all environments 
app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'ejs'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

dizin yapısı aşağıdaki gibidir:

enter image description here

Anlayışım için, app.use(express.static(path.join(__dirname, 'public')));<link rel='stylesheet' href='/stylesheets/style.css' /> ilgili dizine başvurmama izin vermeli, ancak henüz tanımlanmamış bir css hatası alıyorum. Yanlış olan ne?

DÜZENLEME:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= title %></title> 
    <link rel='stylesheet' href='stylesheets/style.css' /> 
    </head> 
    <body> 
    <h1><%= title %></h1> 
    <p>Welcome to <%= title %></p> 
    </body> 
</html> 

cevap

0

Bu bir tutulma hata olduğunu tahmin etmekteyiz. Style.css aslında index.ejs dosyasında gösterilen hatayı rağmen sayfa tarafından okunmaktadır.

enter image description here

0

deneyin

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

veya

:

/** 
* Module dependencies. 
*/ 

var express = require('express') 
    , routes = require('./routes') 
    , user = require('./routes/user') 
    , http = require('http') 
    , path = require('path'); 

var app = express(); 

// all environments 
app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('public', __dirname + '/public'); 
app.set('view engine', 'ejs'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static('public')); 

// development only 
if ('development' == app.get('env')) { // jshint ignore:line 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 
app.get('/users', user.list); 
app.get('/', function(req, res){ res.render('index.ejs'); }); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

index.ejs app.js: İşte benim şimdiki yapılandırma

app.use(express.static('public')); 

Ekspres dokümantasyon here

Düzenleme 1:

You have extra '/'

<link rel='stylesheet' href='stylesheets/style.css' /> 
+0

Maalesef ne hatayı gidermek gibi görünüyor. Ben de app.use denedim (express.static (path.join (__ dirname, '/ public/stylesheet'))); ', app.use (express.static (path.join (__ dirname, 'public/stylesheet')))); ', app.use (express.static ('public/stylesheet'));' ve app.use (express.static ('/ public/stylesheet')); şanssız. – user2227422

+0

aşağıdaki değişiklikleri kontrol edin Edit1: – jmugz3

+0

Başlığı kaldırmayı denedim, ancak yine de hata var. Ayrıca, app.js'ye app.set ('public', __dirname + '/ public'); 'uygulamalarını eklemeyi denedim, ancak bu yardımcı olmadı. – user2227422