Изображения не загружаются, пока я не перестрою приложение Next JS - PullRequest
1 голос
/ 22 марта 2020

В последнее время у меня проблемы с изображениями в следующем js. Я знаю, что далее устарела поддержка stati c в пользу каталога publi c. Так что даже после рефакторинга я все еще не могу загрузить изображения. Вот процесс: я выбираю изображение для проекта и отправляю запрос ax ios на сервер. Сервер только сохраняет путь к mongodb следующим образом:

  staticPath = `/ProjectImages/projImg_${req.decodedTokenData.userId}_${_id}_${key}.png`;
  let imagePath = path.normalize(__dirname + `/../../public${staticPath}`);
  dbImages.push(staticPath);

, записывает кодированное значение base64 изображения в файл и сохраняет его в каталоге ProjectImages в publi c dir. Теперь, когда я создаю проект, изображения не загружаются, даже если у него есть ссылка на путь, а само изображение находится в правильном месте. Только после перестройки приложения я вижу изображение. Примечание: эта проблема не возникает в режиме разработки только в производстве. пожалуйста, помогите.!

1 Ответ

2 голосов
/ 22 марта 2020

Masla he koi ni

вместо того, чтобы напрямую вызывать изображения из источника, я бы порекомендовал вам создать маршрут и обслуживать все эти изображения оттуда

const express = require("express");
const router = express.Router();
const path = require('path');
const fs = require('fs');

router.get('/media/project/:path',function (req,res,next) {
    const _path = `/static/ProjectImages/${req.params.path}`;
    let imagePath = path.normalize(__dirname + `/../../public${_path}`);
    try{
        if (fs.existsSync(imagePath)) {
            res.sendFile(imagePath);
        }else{
            res.sendStatus(404);
        }
    }catch (err) {
        res.sendStatus(404);
    }
});
...