web-dev-qa-db-fra.com

Comment puis-je servir robots.txt sur un SPA en utilisant React avec l'hébergement Firebase?

J'ai un SPA construit en utilisant create-react-app et souhaite avoir un fichier robots.txt comme celui-ci:

http://example.com/robots.txt

Je vois sur cette page que:

Vous devez vous assurer que votre serveur est configuré pour intercepter n'importe quelle URL après avoir été configuré pour servir à partir d'un répertoire.

Mais pour l'hébergement Firebase, je ne sais pas quoi faire.

8
WilliamKF

Dans mon /public répertoire, j'ai créé un robots.txt.

Dans mon /src répertoire, j'ai fait ce qui suit:

J'ai créé /src/index.js:

import React from 'react'
import ReactDOM from 'react-dom'
import {TopApp} from './TopApp'
import registerServiceWorker from './registerServiceWorker'

import {BrowserRouter} from 'react-router-dom'

ReactDOM.render(
  <BrowserRouter>
    <TopApp/>
  </BrowserRouter>,
  document.getElementById('react-render-root')
)

registerServiceWorker()

J'ai créé /src/TopApp.js:

import React from 'react'

import {
  Switch,
  Route
} from 'react-router-dom'

import {ComingSoon} from './ComingSoon'
import {App} from './App'

export class TopApp extends React.Component {
  render() {
    return (
      <div className="TopApp">
        <Switch>
          <Route path='/MyStuff' component={App}/>
          <Route exact path='/' component={ComingSoon}/>
        </Switch>
      </div>
    )
  }
}

Parce que le chemin /robots.txt n'est pas couvert par les chemins de routeur fournis, il l'a pris dans mon répertoire public et le fichier robots a été publié comme souhaité.

La même chose pourrait être faite pour sitemap.xml.

4
WilliamKF