create-react-app
を使用してSPAを構築し、robots.txtを次のように作成したいと考えています。
http://example.com/robots.txt
私は このページ を参照してください:
ディレクトリからサービスを提供するように構成された後、サーバーがURLをキャッチするように構成されていることを確認する必要があります。
しかし、Firebaseホスティングの場合、どうすればよいかわかりません。
firebase.json
の「rewrites」セクションに次のルールを追加するだけです
"rewrites": [
{
"source": "/robots.txt",
"destination": "/robots.txt"
},
{
"source": "**",
"destination": "/index.html"
}
]
私の/public
ディレクトリ、robots.txt
。
私の/src
ディレクトリ、私は次のことを行いました:
わたしは作った /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()
わたしは作った /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>
)
}
}
パス/robots.txt
は提供されたルーターパスの対象ではありません。私のパブリックディレクトリから取得され、ロボットファイルは必要に応じて公開されました。
同じことをsitemap.xml
。