node.js+express+jade: внутренняя ошибка сервера style.css 500

У меня проблема с node.js+express+jade, которую я не знаю, как решить, я уже искал в google и stackoverflow без решения, поэтому прошу вас помочь мне, пожалуйста :)

Проблема в том, что все работает, кроме style.css:

Failed to load resource: the server responded with a status of 500 (Internal 
 Server Error)

P.S: я переустановил последние версии node.js и модулей в целях безопасности, но решения нет.

ОБНОВЛЕНИЕ: ошибка выходит ТОЛЬКО, когда я добавляю это: link(rel='stylesheet', href='style.css') в нефритовый файл

app.js

var express = require("express"); 
app = express(),
routes = require('./routes');

app.configure(function(){
    app.set('port', 8080);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.urlencoded());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});

app.get("/", routes.index);

app.listen(app.get("port"), function() {
    console.log("App listening on port " + app.get("port"));
});

маршруты/index.js

exports.index = function(req, res) {
    res.render('index');
};

public/style.css

body {
    font-size: 20px;
}

у меня возникла эта ошибка:

my_path_privacy\nodejs-test>node app.js
    App listening on port 8080
    ←[90mGET / ←[32m200 ←[90m3674ms - 867b←[0m
    TypeError: Object #<SendStream> has no method 'on'
        at Object.staticMiddleware [as handle] (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\middleware\static.js:89:8)
        at next (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\proto.js:193:15)
        at pass (my_path_privacy\nodejs-test\node_modules\express\lib\router\index.js:110:24)
        at Router._dispatch (my_path_privacy\nodejs-test\node_modules\express\lib\router\index.js:173:4)
        at Object.router [as handle] (my_path_privacy\nodejs-test\node_modules\express\lib\router\index.js:33:10)
        at next (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\proto.js:193:15)
        at Object.methodOverride [as handle] (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\middleware\methodOverride.js:48:5)
        at next (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\proto.js:193:15)
        at Object.urlencoded [as handle] (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\middleware\urlencoded.js:41:37)
        at next (my_path_privacy\nodejs-test\node_modules\express\node_modules\connect\lib\proto.js:193:15)
    ←[90mGET /style.css ←[31m500 ←[90m52ms - 1.34kb←[0m

package.json

{
   "name": "app-test",
   "version": "0.0.1",
   "private": true,
   "scripts": {
       "start": "node app.js"
   },
   "dependencies": {
      "express": "3.4.7",
      "jade": "1.1.0"
   },
   "engines": {
      "node": "0.10.24",
      "npm": "1.3.21"
  }
}

index.jade

doctype html
html
  head
    title Hello world
    link(rel='stylesheet', href='style.css')
  body
    p Hello world

person Manuel Di Iorio    schedule 08.01.2014    source источник
comment
Похоже, что этот ответ может решить вашу проблему.   -  person robertklep    schedule 08.01.2014
comment
@robertklep: уже пытался и не решает, но спасибо за помощь   -  person Manuel Di Iorio    schedule 08.01.2014


Ответы (2)


Я не знаю, связано ли это, у меня было много проблем со встроенным скриптом в файле jade. Синтаксис изменен. Возможно, вам придется добавить точку к тегам script в файле jade, если в следующих строках следует JS.

Есть еще одно злое изменение, нужно писать doctype html вместо doctype 5

script
  var x=1

is now

script.
  var x=1
person user3062426    schedule 08.01.2014
comment
хм, у меня нет тега script в файле jade, но я ищу синтаксические ошибки - person Manuel Di Iorio; 08.01.2014

Похоже на проблему с механизмом шаблонов, просто из любопытства, можете ли вы попробовать отправить массив или объект вместо «Hello, World», просто замените

res.render('index', {title: "Hello, world"});

с

res.render('index', {title: some array or object here});
person user3038427    schedule 08.01.2014
comment
обычно это вызвано неправильными или отсутствующими зависимостями движка, возможно, стоит перепроверить и это (package.json) - person user3038427; 08.01.2014
comment
смотри новые обновления в открытом посте, проблема в ссылке rel - person Manuel Di Iorio; 08.01.2014