React router v4 обслуживает статический файл (robot.txt)

#javascript #reactjs #react-router #robots.txt

#javascript #reactjs #react-маршрутизатор #robots.txt

Вопрос:

Как я могу поместить свой robots.txt файл по пути www.domain.com/robots.txt ? Сервер не используется, его единственный интерфейс с react router.

robots.txt —> в корневой папке ./

app.js —> в папке src ./src/

 (...)

export class App extends React.Component {
 render() {
  return (
   <div>
    <Switch>
      <Route exact path='/stuff' component={Stuff}/>
      <Route exact path='/' component={HomePage}/>
    </Switch>
   </div>
  )
 }
}
  

Если я протестирую его локально, он работает нормально, localhost:4000/robots.txt файл правильно открывается в браузере. Однако я боюсь, что это не так в производственной среде? Есть идеи? Заранее благодарю вас

Комментарии:

1. Является ли ваша среда prod сборкой npm? Если да, сделал robots.txt в конечном итоге в сборке? Я бы также рекомендовал использовать хэш-маршрутизацию. Это устраняет двусмысленность со смешанными статическими файлами.

Ответ №1:

Просто поместите robots.txt sitemap.xml если есть) в build папку.

смотрите изображение

Я сделал это и развернул его в firebase, и я могу получить доступ robots.txt через https://my-site.firebaseapp.com/robots.txt и sitemap.xml через https://my-site.firebaseapp.com/sitemap.xml

Вы должны следовать примеру моего и получать доступ robots.txt через yoursite.com/robots.txt

Примечание: если ваша build папка будет удалена перед выполнением npm run build , то вам нужно снова поместить robots.txt в build папку.

Обновить:

если вы поместите robots.txt и sitemap.xml в public папку, то они будут автоматически копироваться в build папку каждый раз, когда вы выполняете npm run build