express.js не обслуживает мой имидж - PullRequest
4 голосов
/ 22 марта 2012

Я не понимаю, что здесь происходит не так.

структура каталогов:

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 ]

14 голосов
/ 22 марта 2012

Изменить эту строку

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

К этому

app.use('/public', express.static(__dirname + "/public"));
0 голосов
/ 13 июня 2012

Попробуйте использовать абсолютный путь - /img/car.png

...