我部署了一个使用create-react-app
创建的网站,并使用netlify
进行部署。一切都很顺利,只是我发现router
不能正常工作。页面的直接链接和刷新ca我不得不提的是,我还没有为它创建任何后端。我的路由器看起来像这样:
import React, { Component } from 'react';
import {
BrowserRouter as Router,
Route,
Switch
} from 'react-router-dom';
import ScrollToTop from './components/scroll-top';
import HomePage from './pages/homepage';
import AboutPage from './pages/aboutPage';
import ContactPage from './pages/contactPage';
import ServicesPage from './pages/servicesPage';
import PrivacyPolicy from './pages/privacy';
class App extends Component {
render(){
return (
<Router>
<ScrollToTop >
<Switch>
<Route exact path= {process.env.PUBLIC_URL + "/"} component={HomePage} />
<Route path={process.env.PUBLIC_URL +"/about"} component={AboutPage} />
<Route path={process.env.PUBLIC_URL + "/contact"} component={ContactPage} />
<Route path={process.env.PUBLIC_URL + "/services"} component={ServicesPage} />
<Route path={process.env.PUBLIC_URL + "/privacy"} component={PrivacyPolicy} />
</Switch>
</ScrollToTop>
</Router>
);
}};
export default App;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
netlify部署适用于静态站点
为了让你的应用程序正常工作,你必须使用Gatsby或Next.js等工具生成一个静态网站(这个Next.jss链接将带你进入静态网站生成(
原因是netlify不会在服务器上运行您的路由器代码。它将只为静态文件提供服务器。
希望这能给你一些澄清。