我建立了一个应用程序,需要在现有的PHP网站上部署它。问题是,当我加载应用程序时,React路由器中断并引发404错误。我已经设置了一个新的React应用程序和一个本地服务器进行测试--我使用的是xampp。当通过index.php从构建目录提供index.html时,应用程序在没有react路由器的情况下加载得非常好。一旦我添加react路由器,它只显示一个404页面。有没有人使用过react router和apache?
index.js
const router = createBrowserRouter([
{ path: "/", element: <App /> },
]);
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<RouterProvider router={router} />
</React.StrictMode>
);
index.php
<?php
header('Content-Type: text/html; charset=utf-8');
readfile(__DIR__ . '/build/index.html');
?>
在package.json中:
"homepage": "/test-app/build/"
.htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
</IfModule>
正如我所说,如果我用应用程序替换路由器提供商,它工作正常,所以这是一个具体的React路由器问题。
1条答案
按热度按时间2hh7jdfx1#
我想明白了我需要在createBrowserRouter中添加一个基本名称。