Express 3 - Serving static scripts/styles - Error: Failes to load resource (404)

I am new to node and server-side development in general and started having a look at it today so mind my question. I have looked for suiting answers in previous post, yet somehow every suggested solution was criticized by many users.

I can't serve static scripts/styles due to the following error: Failed to load resource: the server responded with a status of 404 (Not Found)

I am using express 3.1.0.

Here is my code:

app.js

var express = require('express');
var app = express();

var routes = require('./routes');

app.configure(function () {
    app.set('view engine', 'jade');
    app.use(express.static(__dirname + '/public'));
});

app.get('/', routes.home);
app.get('/about', routes.about);
app.get('/blog', routes.blog);
app.get('/faq', routes.faq);
app.get('/terms', routes.terms);
app.get('/privacy', routes.privacy);
app.get('/jobs', routes.jobs);
app.get('/press', routes.press);

app.listen(8080);

index.js (routes)

exports.home = function(req, res){
    res.render('home', { title: "Home"});
};

exports.about = function(req, res){
    res.render('about', { title: "About" });
};

etc...

layout.jade

doctype 5
html
    head
        title= title
        link(rel='stylesheet', href='public/styles/bootstrap.css')
    body
        block content
        br
        a(href='../') Home
        br
        a(href='../about') About
        br
etc...

home.jade

extends layout

block content
    p Home

When you setup server middlewere it looks for requests at the root unless specified otherwise if you are looking for a stylesheet in "public/styles" you request it at just "/styles" to make the middlewere answer to requests to /public change it to

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

I tried using

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

instead of

app.use(express.static(__dirname + '/public'));

and it worked.

However according to the first answer in this post: express.js not serving my image it is not considered good. I can't understand why? And what else would be a better solution?