当我尝试直接在生产模式下转到URL时,React显示错误404页面

时间:2019-12-12 15:44:10

标签: reactjs react-router

我当前使用的是React 16.10.2,react-router-dom 5.1.2,我将路由器配置为各种路由,并且在未指定路径的情况下显示自定义的错误404页面。

当我在开发模式下使用应用程序时,它运行良好。当我通过npm run buildserve -s build在生产模式下使用它时,它会正确加载localhost:8443处的基本URL,但是当我登录或尝试直接使用URL手动进入路线时,它会显示“找不到404页”消息。

我已经在线阅读了我应该将.htaccess文件放在我的/ public文件夹中,或者尝试向basename中添加BrowserRouter的方法,但是都没有起作用。我知道该应用程序中的某些路由是通过直接操纵window.location.href来进行的。在仍然重定向到正确页面的同时如何保留此功能?

此应用是使用create-react-app进行的。这是我的App.js:

...
if (authenticated) {
        return (
            <Router>
                <Switch>
                    <Route path='/membership'>
                        <SafetyArea/>
                        <Sidebar/>
                        <Membership></Membership>
                        <SafetyArea/>
                        <Footer/>
                    </Route>

                    <Route path='/payment'>
                        <SafetyArea/>
                        <Sidebar/>
                        <Payment></Payment>
                        <Footer/>
                    </Route>

                    <Route path='/success'>
                        <SafetyArea/>
                        <Sidebar/>
                        <Success></Success>
                        <SafetyArea/>
                        <Footer/>
                    </Route>
...

                    <Route>
                        <SafetyArea/>
                        <Error404/>
                    </Route>


                </Switch>
            </Router>
        );



这是我的.htaccess文件(到目前为止,我还没有看到它的作用):

RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

0 个答案:

没有答案