Приложение стека MEAN не загружает изображения при доступе с другого устройства, кроме localhost - PullRequest
0 голосов
/ 22 марта 2019

Я создаю сайт обмена книгами для практики стека MEAN, поскольку я новичок в этом.

В моей локальной среде разработки на localhost все работает довольно хорошо.Он извлекает сообщения, изображения и все.Затем я попытался получить доступ к сайту с других устройств, разместив сайт с моим IP-адресом локальной сети с помощью команды Angular ng serve --host 192.168.0.107 и Node npm run start:server --host 192.168.0.107.

Но проблема в том, что при доступе к нему с другогоНоутбук и мобильный телефон, которые находятся в одной локальной сети, сайт загружает все сообщения довольно хорошо, за исключением изображений.

Это то, что выглядит на моем ПК, на котором я его разработал, на котором установлена ​​ Ubuntu 16.04 ОС.

enter image description here

Когда я получаю к нему доступ с моего Windows 7 ПК, он выглядит так,

enter image description here

И когда я получаю доступ с моего устройства Android, это выглядит так,

enter image description here

Всеизображения отсутствуют.

Вот код, в котором я установил заголовки CORS.

    app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, PATCH, DELETE, PUT, OPTION");
  next();
});

На других устройствах, к которым я пытаюсь получить доступ в консоли, отображается Failed to load resource: net::ERR_CONNECTION_REFUSED.

Я часами искал похожие вопросы, ни один из них не соответствовал моей ситуации.Даже малейшая подсказка означала бы большую помощь.

1 Ответ

0 голосов
/ 22 марта 2019

Я на срединном курсе, где делаю то же самое. Я предполагаю, что изображения хранятся в папке на сервере. Например, бэкэнд / изображения. На устройстве разработки доступ к папке предоставлен. Для доступа к нему с другого устройства необходимо предоставить к нему общий доступ.

Вставьте эту строку в app.js:

app.use('/images', express.static(path.join('backend/images'))));

Это откроет папку / images и перешлет ее в backend / images Лучше всего вставить эту строку перед установкой заголовков.

Надеюсь, это поможет

...