即使使用express.static,NodeJS也不会提供静态文件

时间:2012-03-10 12:28:04

标签: node.js express

我有以下几点:

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时,我仍然得到:

  

无法获取/public/myfile.css   我的index.jade模板似乎无法调用文件

为什么会这样?

3 个答案:

答案 0 :(得分:14)

我认为不支持提供这样的路径:

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

试试这个,并在根目录中查找您的公共文件:

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

因此/public/myfile.css变为/myfile.css

答案 1 :(得分:1)

重要的还有app.use(express.static(__dirname + '/public'))声明的位置......

当我意外地将它放在./middle-conf.js文件中时,我遇到了一个问题,当时它被导入为var configure = require('./middle-conf)然后快递应用程序被传递到此文件中configure(app)

因此快递中间件处理订单没有正常工作。

答案 2 :(得分:0)

这很好......

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

并在你的html页面中像这样访问..

<script src="/public/yourcodes.js"></script>