Поймать все перенаправления для создания-реакции-приложения в Netlify - PullRequest
3 голосов
/ 05 мая 2019

У меня есть сборка с использованием create-react-app и размещение в netlify.

В этой ссылке упоминается, что мне нужно написать правила перенаправления для SPA.

/*    /index.html   200

Но перенаправление на index.html не работает, так как с этим URL не отображается представление. Я также попытался перенаправить на / как

[[redirects]]
  from = "/*"
  to = "/"

но это тоже не работает.

Как мне сделать переадресацию для всех create-react-app?

Ответы [ 2 ]

6 голосов
/ 05 мая 2019

Чтобы перехватить все перенаправления, используйте /* /index.html 200 в _redirects файле.

Согласно документации по netlify, файл _redirects должен находиться в корневом каталоге сборки.

create-реакция-приложение по умолчанию создает все файлы сборки в папке с именем build

, поэтому просто измените build scripts в package.json, чтобы добавить _redirects в папку сборки после сборки приложения.

пример.

"scripts": {
  ....
  "build": "react-scripts build && echo '/* /index.html  200' | cat >build/_redirects ",
  ...
}

Если у вас несколько перенаправлений, чтобы упростить задачу, вы можете создать файл _redirects со всеми перенаправлениями в корневой (/) папке CRA

тогда в package.json станет

"scripts": {
  ....
  "build": "react-scripts build && cp _redirects build/_redirects",
  ...
}

убедитесь, что команда build в вашей netlify - yarn run build или npm run build

после внесения изменений в package.json просто пересоберите свой код.

1 голос
/ 19 мая 2019

Существует два (2) способа создания перенаправлений при размещении на Netlify .

  • _redirects файла в корне каталога publish (/buildв CRA)
  • [[redirects]] список в файле конфигурации netlify.toml в корне хранилища (проект)

/public/_redirects (опция 1)

Поместите _redirects в каталог /public.CRA копирует все файлы в /public в каталог сборки при запуске команды сборки.

/public/_redirects

/* /index.html  200

/netlify.toml (вариант 2)

Поместите netlify.toml в корневой каталог (/) вашего проекта (репозитория), развертываемого в Netlify.Вы можете добавить линии перенаправления в конец netlify.toml, если он уже существует.

/netlify.toml

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
  force = false

Примечание: Эти параметры можно комбинировать, но помните, что _redirects перезапишет запись с тем же путем источника (из) в netlify.toml.

Вы также можете использовать перенаправления игровую площадку для преобразования из одного формата в другой.

...