【问题标题】:"The requested URL was not found on this server" on refresh or writing manually React刷新或手动写入时“在此服务器上找不到请求的 URL”
【发布时间】:2020-07-09 12:11:51
【问题描述】:

我对 React 和 Web 开发还很陌生,并且创建了一个简单的网站。

在本地主机上一切正常,但是当我构建它并启动它时,发生了这个错误, 也就是说,当我写出页面的全名 - www.xxx.com/AboutUs 时,它会给出 “404 Not Found - 在此服务器上找不到请求的 URL。”

但是,当我单击页脚中的链接时,它可以访问和查看该页面,但是当我刷新 /AboutUs 页面时,会弹出相同的错误。

我已尝试使用多种解决方案来修复它,但它们要么已过时,要么不符合最佳实践。据我了解,它必须对我的 BrowserRouter 做一些事情,所以我将附上代码。 如前所述,通过单击页脚中的链接可以转到 /AboutUs 页面。

class Routes extends React.Component {
render() {
    return (
        <Switch>
            <Route exact path="/" component={Frontpage} />
            <Route exact path="/AboutUs" component={AboutUs} />
            <Route path="/*" component={ErrorPage} />
        </Switch>
    );
}

}

导出默认路由;

这是我如何处理页脚中的链接

<Link to='/AboutUs' id="mailTo2">About Us</Link>

【问题讨论】:

    标签: reactjs http-status-code-404


    【解决方案1】:

    更新。

    我通过添加带有以下代码的 .htaccess-file 来修复它

    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [QSA,L]
    

    【讨论】:

      【解决方案2】:

      只要确保您从服务器返回静态资产。

      Express 服务器示例

      app.get('*', (req, res) => res.sendFile(`${staticPath}/index.html`));
      

      【讨论】:

        猜你喜欢
        • 2017-03-21
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        • 2017-12-26
        • 2015-03-30
        • 2014-12-13
        • 2016-10-31
        • 2017-04-19
        相关资源
        最近更新 更多