Я просто немного запутался, как правильно обслуживать активы из исходной папки.
Соответствующий код на стороне сервера (клиент делает запрос к / images, сервер отправляет обратно имена файлов):
const images = './static/images/';
app.use(express.static('static/images'))
app.get('/images', (req, res) => {
res.setHeader('Content-Type', 'application/json');
fs.readdir(images, (err, files) => {
res.send(files);
});
});
Моя структура каталогов выглядит так:
public
index.html
server (houses Node/Express code)
index.js
src (houses React code)
App.js
static
images
image1, image2, image4, image4
Если я попытаюсь отобразить изображение в React (State.Curnimage - один из 4 имен файлов):
<img alt="scan" src={ require(this.state.currImage)}
Я получаю сообщение об ошибке «Необработанное отклонение (ошибка): не удается найти модуль './static/images/file1.jpg'»
1 ответ
Похоже, вы могли бы удалить require
из загрузки изображения, учитывая, что это путь к изображению, а не путь к модулю javascript.
<img alt="scan" src={this.state.currImage}
Возможно, вам может потребоваться обновить URL этих изображений, чтобы указать на URL-адрес сервера. Прямо сейчас строка ./static/images/file1.jpg
, но может потребоваться быть /images/file1.jpg
.
Похожие вопросы
Новые вопросы
node.js
Node.js - это неблокирующая асинхронная среда ввода-вывода, основанная на событиях, использующая движок Google V8 JavaScript и библиотеку libuv. Он используется для разработки приложений, которые интенсивно используют возможность запуска JavaScript как на клиенте, так и на стороне сервера, и, следовательно, выигрывают от повторного использования кода и отсутствия переключения контекста.