Почему мой сервер не может получить доступ к моей папке сборки? - PullRequest
0 голосов
/ 21 апреля 2020

Попытка получить реакцию в производство, используя Heroku. Сама сборка работала, но когда я запускаю приложение в работе, я получаю пустой экран с текстом «маршрут не найден». Я полагаю, что это потому, что к папке сборки невозможно получить доступ, папка и все ее содержимое отображаются серым, как если бы они игнорировались. Мои другие проекты никогда не делали этого раньше, хотя это первый раз, когда я запускаю приложение реакции на Heroku. Вот мой главный. js:

const express = require('express')
const cors = require('cors')
const bp = require('body-parser')
import DbContext from "./db/DbConfig"

const port = process.env.PORT || 3000

let server = express()

DbContext.connect()

server.use(express.static(__dirname + '/../client/build'))

let whitelist = ['http://localhost:8080', 'https://ssb-stats.herokuapp.com'];
let corsOptions = {
  origin: function (origin, callback) {
    let originIsWhitelisted = whitelist.indexOf(origin) !== -1;
    callback(null, originIsWhitelisted);
  },
  credentials: true
};
// @ts-ignore
server.use(cors(corsOptions))

server.use(bp.urlencoded({ extended: true }))
server.use(bp.json())

server.use((error, req, res, next) => {
  console.error(error);
  res.status(error.status || 400).send({ error: error.message })
})

server.use('*', (req, res, next) => {
  res.status(404).send("Route not found")
})

server.listen(port, () => { console.log(`Server is running on port: ${port}`) })

Я думаю, что все там выглядит хорошо, я не уверен, что это проблема пакета или что-то, но любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 21 апреля 2020

Вы должны использовать:

server.use(express.static(path.join(__dirname, '/../client/build')));

, поскольку вы обращаетесь к верхнему каталогу, вам нужно создать путь, а не объединять.

Также для использования path вам нужно требуется: const path = require('path');

...