express.js不服务我的形象

时间:2012-03-21 22:11:11

标签: node.js express google-maps-markers

我不明白这里出了什么问题。

目录结构:

app/server.js
app/public/index.html
app/public/js/main.js
app/public/img/car.png 

server.js

var fs = require('fs') ,express = require('express'),
app = express.createServer();

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

app.get('/', function(req, res){
    fs.readFile(__dirname + '/public/index.html', 'utf8', function(err, text){
        res.send(text);
    });
});

app.listen(8080, function(){
    console.log('Server listening on %d', app.address().port);  
});

main.js

var marker = new google.maps.Marker({
        map:map,
        position:coords,
        icon: 'img/car.png'
    });

ERROROUTPUT:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/img/car.png 

我的所有css文件和js文件加载没有问题。 我做错了什么?

更新 这是因为该文件名为car.png.png 在Windows中浏览时,文件扩展不可见,所以我被骗以为这个名字真的是car.png 经验教训!

2 个答案:

答案 0 :(得分:14)

更改此行

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

到此

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

答案 1 :(得分:0)

尝试使用绝对路径 - /img/car.png