В приведенном ниже коде клиента я пытаюсь отобразить изображение (space.jpg), которое находится в том же каталоге, что и index.js и index.html. На экране отображается некорректная ссылка, когда я обращаюсь к серверу, и я подал index.html. Есть ли что-то относительно собственной файловой структуры Node при обслуживании статического HTML, который я не учитываю здесь?Ошибка пути к файлу с использованием NodeJS
Я тестирую локальную среду на OS X (10.10.5).
У меня есть следующий код сервера (index.js):
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendfile('index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('chat message', function(msg){
console.log('message: ' + msg);
io.emit('chat message', msg);
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
И код, следующий клиент (index.html):
<!doctype html>
<html>
<head>
<title>Infinium</title>
<style>
</style>
</head>
<body>
<div id="chat" style="background-color:rgba(0,0,0,0.7);width:500px;top:0px;left:0px;position:absolute;">
<div style="width:500px;px;height:100px;overflow-y:auto;color:#FFFFFF" id="messages"></div>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
</div>
<img src="space.jpg">
<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
var element = document.getElementById("messages");
element.scrollTop = element.scrollHeight;
});
</script>
</body>
</html>
Произошла ли консоль с сообщением об ошибке? что он говорит? –
Итак, ваша проблема заключается в том, что ваш экспресс-сервер не служит файлу изображения? Не могли бы вы удалить весь этот код клиента чата из вашего вопроса? Это бесполезный беспорядок. Фокус. – Tomalak
@EliezerWohl Да, это показывает: GET http: // localhost: 3000/space.jpg 404 (не найдено) – nicktendo