Я пытаюсь понять, как использовать node.js с jade прямо сейчас, и я не могу заставить его использовать таблицу стилей css. Мой app.js выглядит так:
/* * Module dependencies */
var http = require("http"),
express = require('express') ,
stylus = require('stylus')
//create an app server
var app = module.exports = express.createServer();
app.configure(function(){
//set path to the views (template) directory
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(app.router);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(stylus.middleware({
debug: true,
src: __dirname + '/views',
dest: __dirname + '/public'
}));
app.use(express.static(__dirname + 'public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
//handle GET requests on /
app.get('/', function(req, res){res.render('index.jade');
});
//listen on localhost:3000
app.listen(3000);
Мой файл layout.jade выглядит так:
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body!= body
И моя файловая структура:
App
-node_modules
-public
-css
style.css
-img
-js
-views
-routes
-stylesheets
style.styl
index.jade
layout.jade
app.js
package.json
Я загружаю веб-сайт правильно, но таблица стилей не загружается.
express.static()
, отсутствует/
--__dirname + '/public'
-- поэтому, вероятно, он пытается найти файлы в несуществующей папкеApppublic
.path
модуль также может помочь избежать этого:express.static(path.join(__dirname, 'public'))
. - person Jonathan Lonowski   schedule 02.02.2014require('path')
так же, как и сhttp
,express
и т. д., поскольку это не глобальный в модулях. - person Jonathan Lonowski   schedule 02.02.2014