node.js脚本无法获取静态文件

我有一个基本的HTML index.html与一些容器,我添加引导程序字体真棒文件夹的文件的<head>部分。 如:

 <link href="../bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="../bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="font-awesome/css/font-awesome.css" rel="stylesheet"> 

然后,我写了一个web.js脚本来初始化服务器,然后添加这些包含静态文件的文件夹,方法如下:

 var express = require('express'); var app = express(); var fs = require('fs'); var buf = fs.readFileSync("index.html"); app.use(express.logger()); app.get('/', function(request, response) { response.send(buf.toString()); }); app.configure(function(){ app.use(express.static(__dirname + '/assets')); app.use(express.static(__dirname + '/bootstrap')); app.use(express.static(__dirname + '/font-awesome')); }); var port = process.env.PORT || 8080; app.listen(port, function() { console.log("Listening on " + port); }); 

但是,当我去http://localhost:8080我从GET命令尝试获取bootstrap.css等404错误任何帮助吗? 我尝试从stackoverflow获得不同的脚本,但我似乎无法得到正确的。 谢谢!

通过以这种方式初始化express.static ,您可以告诉它从任何请求的文件的根目录中查找这些文件夹。

如果你要删除path:

 <link href="css/bootstrap.css" rel="stylesheet"> <link href="css/bootstrap-responsive.css" rel="stylesheet"> <link href="css/font-awesome.css" rel="stylesheet"> 

你的静态资产很可能被find。 但是,您正在寻找头痛的问题,因为任何重复的文件名都会导致返回的第一个文件名。

相反,您可能希望将所有静态资产置于单个目录下,或者为app.use语句添加不同的path参数,以使组织更好。

文件布局:

 public |-- bootstrap |-- font-awesome 

相应的app.use语句(并从您的htmlpath中删除..):

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

或多个静态中间件(并从您的HTMLpath中删除..):

 app.use('/bootstrap', express.static(path.join(__dirname, '/bootstrap'))); app.use('/font-awesome', express.static(path.join(__dirname, '/font-awesome'))); 

上述任一项的HTML更改:

 <link href="bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="font-awesome/css/font-awesome.css" rel="stylesheet"> 

尝试在HTML:

 <link href="bootstrap/css/bootstrap.css" rel="stylesheet"> <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> <link href="font-awesome/css/font-awesome.css" rel="stylesheet"> 

在节点应用程序:

 app.use('/assets', express.static(path.join(__dirname, '/assets'))); app.use('/bootstrap', express.static(path.join(__dirname, '/bootstrap'))); app.use('/font-awesome', express.static(path.join(__dirname, '/font-awesome')));