我在react应用程序上创建了一个嵌套路由,然后在netflix上部署了应用程序。但在netflix上刷新页面后,嵌套路由不工作(这在我的localhost上是可以的)
note1:我在公共文件夹中添加_redirects文件并在
上写入/* /index.html 200
note2: and I add .htaccess file in root app
note3:在嵌套路由中刷新后,我在控制台中得到错误呃:
Uncaught SyntaxError: Unexpected token '<'
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
App.js
const App = () => {
return (
<Fragment>
<BrowserRouter basename="/">
<Header />
<Switch>
<Route path="/register/:nested" component={Nested} />
<Route exact path="/register" component={Register} />
<Route path="/login" component={Login} />
<Route exact path="/" component={Home} />
</Switch>
</BrowserRouter>
</Fragment>
);
};
export default App;
Nested.js
const Nested = () =>{
return <div>
<p>Nedted</p>
</div>
}
export default Nested;
Header.js
const Header = () =>{
return <header>
<NavLink to='/register/nestedroute'>Nested</NavLink>
<NavLink to='/login'>Login</NavLink>
<NavLink to='/register'>Register</NavLink>
<NavLink exact to='/'>Home</NavLink>
</header>
}
export default Header;
按以下步骤操作:
<Switch>
<Route exact path="/register/:nested" component={Nested} />
<Route exact path="/register" component={Register} />
<Route exact path="/login" component={Login} />
<Route exact path="/" component={Home} />
</Switch>