我在一家公司工作,刚刚为他们部署了一个项目,但遇到了问题。因此,当您转到链接 http://domain 时,您可以转到该页面,然后从那里您可以转到任何其他页面(反应路线),但如果您直接转到 http://domain/some-终点,显示404未找到。有人知道如何解决吗?
发生这种情况是因为您的服务器端不处理重定向到index.html,您可以通过将后端配置为始终重定向到html来修复它,或者您可以使用 HashRouter 而不是从react-router修复它浏览器路由器
您可以使用根文件夹中的 .htaccess 修复此问题:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
用
createBrowserRouter
替换 createHashRouter
对我有用。
注意: 尽管如果您从路线访问值,则需要小心,但您可能需要更改一些逻辑
const router = createHashRouter([
{
path: "/",
element: <Root />,
errorElement: <>Something went wrong</>,
children: [
{
index: true,
element: <Index />,
}
],
},
]);