即使使用express.static,NodeJS也不会提供静态文件
我有以下几点:
var request = require('request'), express = require('express'); var app = express.createServer(); var port = process.env.PORT || 8080; app.configure(function(){ app.set("view options", { layout: false, pretty: true }); app.use(express.favicon()); app.use("/public", express.static(__dirname + '/public')); } ); app.listen(port); // Routes app.get('/', function(req, resp){ resp.render('index.jade', {pageTitle: 'Some title'}); });
然而,当我访问/public/myfile.css例如,我仍然得到:
无法GET /public/myfile.css我的index.jade模板似乎无法调用文件
为什么是这样?
我不认为提供这样的path是支持的:
app.use("/public", express.static(__dirname + '/public'));
试试这个,并在根目录中查找你的公共文件:
app.use(express.static(__dirname + '/public'));
所以/public/myfile.css
变成/myfile.css
。
重要的是在app.use(express.static(__dirname + '/public'))
语句的位置…
我有一个问题,当它也没有工作,当我不小心把这个./middle-conf.js文件,后来被导入为var configure = require('./middle-conf)
,然后快速应用程序被传递进入这个configure(app)
。
所以表示中间件的处理顺序并不正确。
这工作正常…
app.use("/public", express.static(__dirname + '/public'));
并在您的HTML页面访问它像这样..
<script src="/public/yourcodes.js"></script>