#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