相关疑难解决方法(0)

React Router DOM 在 Amplify Console AWS 上无法正常工作

我已经按照他们的文档在 Amplify 控制台上部署了 React 应用程序。该站点已部署并运行良好,我可以使用链接进行导航,但是当我尝试直接登陆任何 url 时,我被重定向到我配置的 404 页面。

下面是我正在使用的代码

ReactDOM.render(
  <Router>
    <Route path="/" component={App} />
  </Router>,
  document.getElementById("root"),
);
Run Code Online (Sandbox Code Playgroud)

这是我的路线的样子 -

<Switch>
    <Route
      exact
      path="/"
      render={(): JSX.Element => <Home auth={this.auth} />}
    />
    <Route path="/features" render={(): JSX.Element => <Features />} />
    <Route
      path="/pagenotfound"
      render={(): JSX.Element => <PageNotFound />}
    />
    <Redirect from="/**" to="/pagenotfound" />
</Switch>
Run Code Online (Sandbox Code Playgroud)

这是应用程序的链接 - https://master.dkf0zemoh330o.amplifyapp.com/features

amazon-web-services create-react-app aws-amplify

17
推荐指数
1
解决办法
6836
查看次数

当页面刷新或手动导航时,React 不会在桌面 Safari 或任何移动(仅限 iOS 测试)浏览器上呈现

这似乎是其他一些的重复。但没有任何解决方案对我有用。

通过链接导航工作正常。刷新页面或手动导航仅适用于桌面(chrome 和 firefox,不适用于 Safari)。在桌面 safari 和所有 iOS 浏览器上,它只是在浏览器中显示整个 JSON 对象,似乎并不提供静态文件。

我试过 Router、BrowserRouter 和 HashRouter。唯一有效的是HashRouter。但是,我不想在 url 中使用哈希值。

我没有收到任何错误,而且我已经全部记录了控制台。当我在 getProducts 操作创建器和服务器“/products”路由中放置日志时,Safari 不会在浏览器中显示操作创建器控制台日志。但是,heroku 日志显示 path="/products" 正在被命中,而不是 path="/static/css/main.etc.," 或 path="/static/js/main.etc.," 文件.

我研究过和/或尝试过的事情:

手动刷新或写入时,React-router url 不起作用

网页无法在 iOS 浏览器或桌面 Safari 中正确呈现

https://github.com/ReactTraining/react-router/issues/4727

如何从 react-router 中的 url 中删除哈希

React Routing 在本地机器上工作,但在 Heroku 上不工作

https://github.com/ReactTraining/react-router/issues/4671

这是一个精简的样本。注意:我同时使用来代理我的请求。

// 客户端/index.js

import React from 'react'
import ReactDOM from 'react-dom'
import './styles/index.css';
import App from './App'
import registerServiceWorker from './registerServiceWorker'
import { Router } from 'react-router-dom'
import { Provider } …
Run Code Online (Sandbox Code Playgroud)

javascript heroku react-redux react-router-dom

5
推荐指数
0
解决办法
3608
查看次数