Express 3 – 提供静态脚本/样式 – 错误:Fails加载资源(404)

我是一般的节点和服务器端开发的新手,现在开始看看它,所以请介绍一下我的问题。 我已经在上一篇文章中find了合适的答案,但不知何故,每个build议的解决scheme都受到了许多用户的批评。

由于以下错误,我无法提供静态脚本/样式:无法加载资源:服务器响应状态为404(未find)

我正在使用Express 3.1.0。

这是我的代码:

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(路线)

 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 

当你设置服务器middlewere时,它会在根目录寻找请求,除非另有指定,否则如果你正在寻找一个样式表在“公共/风格”你只是要求“/样式”作出中间答案的请求/公众改变它

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

我试过使用

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

代替

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

它的工作。

然而,根据这篇文章的第一个答案: express.js不服务我的形象,这是不好的。 我不明白为什么? 还有什么更好的解决scheme?