Код: Выделить всё
data/
index.html
images/
image1.png
image2.png
… etc
Я настроил код следующим образом:
Код: Выделить всё
const http = require('http');
const port = 8080;
const fsp = require('fs').promises;
const root = ' … ';
async function doit(zip) {
let server = http.createServer( async (request, response) => {
let data;
if(request.url == '/') {
data = await fsp.readFile(`${root}/images/images.html`);
response.statusCode = 200;
response.setHeader('Content-Type', 'text/html');
response.write(data);
}
else {
try {
data = await fsp.readFile(`${root}/images${request.url}`);
response.statusCode = 200;
response.setHeader('Content-Type', 'image/png');
response.write(data, 'binary');
response.end;
}
catch(error) {
console.log(`oops: ${error}`)
};
}
});
server.listen(port, () => {
console.log('listening')
});
}
doit();
Код: Выделить всё
http://localhost:8080
- появляются только некоторые изображения
- браузер завершает загрузку index.html, но указывает, что она не завершена вообще.
У меня есть пробовал на Macintosh с Firefox и Safari, значит дело не в браузере. Я также пробовал использовать полные URL-адреса для изображения (
Код: Выделить всё
http://localhost:8080/images/…Не хватает ли чего-то в этом, чтобы обеспечить полную загрузку страницы?
Мне известны некоторые другие вопросы, такие как «Изображения не отображаются на веб-странице, представленной node.js», но (а) они очень старые, и с тех пор все изменилось, (б) они остались без ответа и заброшены, (в) на сервере или на сервере очень мало деталей данные, поэтому их невозможно сравнивать, и (г) я включил любые предложения, которые могут быть актуальными, поэтому этот вопрос выводит его на новый уровень.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ode-server
Мобильная версия