我有一个使用create-react-app
构建的SPA,并希望拥有这样的robots.txt:
http://example.com/robots.txt
我在这个页面上看到:
您需要确保服务器配置在从目录中提供服务之后捕获任何URL。
但对于Firebase托管,我不确定该怎么做。
我有一个使用create-react-app
构建的SPA,并希望拥有这样的robots.txt:
http://example.com/robots.txt
我在这个页面上看到:
您需要确保服务器配置在从目录中提供服务之后捕获任何URL。
但对于Firebase托管,我不确定该怎么做。
/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
也可以采用相同的方法。firebase.json
中的 "rewrites" 部分。"rewrites": [
{
"source": "/robots.txt",
"destination": "/robots.txt"
},
{
"source": "**",
"destination": "/index.html"
}
]