Можно ли настроить параметры create-реакции-app express .stati c без извлечения? - PullRequest
0 голосов
/ 15 февраля 2020

По умолчанию, когда существует пустая папка, express .stati c запускает перенаправление 301, добавляя вперед slala sh.

Вот как я отключить это перенаправление для пользовательских Express серверов.

server.use(
  express.static(path.join(__dirname, "build"), {
    redirect: false,
  })
)

Возможно ли настроить redirect: false при использовании create-реакции-app в режиме разработки ( npm start?

Рассматривая следующие заголовки, я думаю, Express - это то, что create-react-app использует для обслуживания SPA в режиме разработки.

Запрос заголовков при загрузке http://localhost: 3001 / Privacy-guides

HTTP/1.1 301 Moved Permanently
X-Powered-By: Express
Content-Type: text/html; charset=UTF-8
Content-Length: 195
Content-Security-Policy: default-src 'none'
X-Content-Type-Options: nosniff
Location: /privacy-guides/
Vary: Accept-Encoding

Ответы [ 2 ]

0 голосов
/ 16 февраля 2020

Краткий ответ, нет.

Как отметил @ goto1, следующее не является хорошей практикой, но помогло мне понять, как все работает под капотом в CRA.

При запуске CRA в режиме разработки для использования приложения npm start, webpack-dev-server . Webpack DevServer использует Express для обслуживания файлов, что объясняет, почему просмотр папок вызывает перенаправление 301 (см. express .stati c options.redirect, по умолчанию true).

Перенаправление на конечный «/», если путь является каталогом.

Подтверждаю, что добавление следующего к node_modules/react-scripts/config/webpackDevServer.config.js отключает перенаправление.

staticOptions: {
  redirect: false
}

Редактирование этого файла вручную немного взломано, но работает. К сожалению, единственный способ git, который я смог найти при настройке staticOptions, требует извлечения .

0 голосов
/ 15 февраля 2020

create-react-app - это инструмент для сборки, а не сервер. Его вывод представляет собой набор stati c html / js / css файлов, которые вы можете свободно обслуживать любым удобным для вас способом. (npm run build)

Единственное, что каким-то образом обслуживается с create-react-app, - это сервер разработки, который предназначен для использования только на компьютере разработчика, а не на производстве. (npm start)

Если вам все еще нужно переопределить create-react-app конфигурации, взгляните на специализированные инструменты, такие как:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...