Проблема с получением статических файлов в Vercel

Я уже неделю ломаю голову, почему у меня такая проблема. У меня есть клиентская часть (React) и серверная часть (Express) моего сайта. При публикации моей серверной части на Vercel у меня все работает нормально, авторизация работает, новости загружаются. Но не работает только получение статических файлов по пути (пример) https://my-site.vercel.app/uploads/image.png. И я не понимаю, почему, потому что все остальное работает хорошо.

Мой index.js файл:

import multer from "multer";
import express from "express";
import mongoose from "mongoose";
import cors from "cors";
import {
  registerValidation,
  loginValidation,
  postValidation,
} from "./validations.js";
import { checkAuth, handleValidationErrors } from "./utils/index.js";
import { UserController, PostController } from "./Controllers/index.js";

mongoose
  .connect(
    "mongodb+srv://catosrak:******[email protected]/?retryWrites=true&w=majority&appName=test"
  )
  .then(() => console.log("DB ok"))
  .catch((err) => console.log("DB error", err));

const app = express();

const storage = multer.diskStorage({
  destination: (_, __, cb) => {
    cb(null, "uploads");
  },
  filename: (_, file, cb) => {
    cb(null, file.originalname);
  },
});

const upload = multer({
  storage,
});

app.use(express.json());
app.use(
  cors({
    origin: "http://new.i-m-z.ru",
  })
);
app.use("/uploads", express.static("uploads"));

app.post(
  "/auth/register",
  registerValidation,
  handleValidationErrors,
  UserController.register
);
app.post(
  "/auth/login",
  loginValidation,
  handleValidationErrors,
  UserController.login
);
app.get(
  "/auth/authme",
  checkAuth,
  handleValidationErrors,
  UserController.authme
);
app.get("/posts/", PostController.getAll);
app.get("/posts/:id", checkAuth, PostController.getOne);
app.post("/posts/", checkAuth, postValidation, PostController.createPost);
app.delete("/posts/:id", checkAuth, PostController.removePost);
app.patch("/posts/:id", checkAuth, postValidation, PostController.updatePost);
app.post("/upload", upload.single("image"), (req, res) => {
  res.json({
    url: `uploads/${req.file.originalname}`,
  });
});

app.listen(3131, function () {
  console.log("Server OK");
});

Мой vercel.json файл:

{
  "version": 2,
  "builds": [
    {
      "src": "./index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/"
    }
  ]
}

Я попытался изменить vercel.json, попытался загрузить проект с помощью интерфейса командной строки или просто импортировать проект из github.com. Но это не сработало. При попытке перейти по пути https://my-site.vercel.app/uploads/image.png Я получаю сообщение об ошибке 404 NOT FOUND . Хотя, если я разверну свой проект на своем компьютере по пути localhost:3131/uploads/image.png, я получу это изображение. В чем может быть проблема, я все еще не понимаю

Моя структура сервера


Ответы (0 шт):