Браузер перестает запрашивать изображения с Node ServerJavascript

Форум по Javascript
Ответить
Anonymous
 Браузер перестает запрашивать изображения с Node Server

Сообщение Anonymous »

Я запускаю простой тестовый сервер, чтобы проверить несколько концепций. Для тестирования у меня есть zip-файл такой структуры:

Код: Выделить всё

data/
index.html
images/
image1.png
image2.png
… etc
Файл index.html ссылается на несколько изображений в папке images (на данный момент все .png).
Я настроил код следующим образом:

Код: Выделить всё

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
Это работает, но не полностью. У меня около 20 изображений, но:
  • появляются только некоторые изображения
  • браузер завершает загрузку index.html, но указывает, что она не завершена вообще.
Используя несколько операторов console.log в скрипте, я обнаружил, что примерно после четырех или пяти изображений больше нет запросов на изображения.
У меня есть пробовал на Macintosh с Firefox и Safari, значит дело не в браузере. Я также пробовал использовать полные URL-адреса для изображения (

Код: Выделить всё

http://localhost:8080/images/…
), который не работает, хотя он будет работать для изображений с другого сервера.
Не хватает ли чего-то в этом, чтобы обеспечить полную загрузку страницы?
Мне известны некоторые другие вопросы, такие как «Изображения не отображаются на веб-странице, представленной node.js», но (а) они очень старые, и с тех пор все изменилось, (б) они остались без ответа и заброшены, (в) на сервере или на сервере очень мало деталей данные, поэтому их невозможно сравнивать, и (г) я включил любые предложения, которые могут быть актуальными, поэтому этот вопрос выводит его на новый уровень.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ode-server
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»