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')));