【问题标题】:How can I link to a 'page' within a React SPA?如何链接到 React SPA 中的“页面”?
【发布时间】:2021-03-04 20:57:56
【问题描述】:

我在 React 中构建了一个 SPA,并希望从另一个站点链接到 SPA 上的特定“页面”,即。 https://mywebsite.com/contact 但是,由于它是一个使用 'Switch' 中的 'React-Router' 和 'Link' 的 SPA,因此它是一个外部链接锚点,除了: https://mywebsite.comhttps://mywebsite.com/ 自然会显示 404 错误。我期待这一点,但想知道是否有一种方法可以在不从“登陆页面”开始的情况下进入我的 SPA 的特定部分? 如果有人知道一种方法并且可以为我指出正确的方向,当然,如果有的话,那就太好了。 提前致谢。

【问题讨论】:

  • 你能发布一些你的代码吗?您所描述的需求正是 react-routerlink 的用途,因此可能会发生某种配置问题。
  • 这是一个问题,您的服务器仅在通过 ./index 访问时才加载 React 应用程序。您需要对其进行配置,以便所有页面都转到您的应用程序。

标签: reactjs react-router single-page-application


【解决方案1】:

对每个页面使用 react-helmet

 import Helmet from 'react-helmet'
{....}
         <Helmet>
          <title>title</title>
          <meta name="description" content={description} />
          <meta name="keywords" content={keywords} />
          <link rel="canonical" href={"***YOUR-URL/PATH***"} />
        </Helmet>

您还应该将服务器配置为始终指向所有内容的索引。

我希望这能解决您的问题,如果您的应用依赖于这么多页面,您可以使用 NextJS 生成静态站点

【讨论】:

  • 感谢您的建议。可悲的是,它并不能真正解决我的需求。我应该说的是,我需要能够将电子邮件中的链接(例如)发送到一个不是 SPA 的登录页面而是某人会点击该网站以获取的“页面”的页面至。 IE。 my-website.com 是该站点,但我想将论坛页面的链接发送给朋友,地址为 my-website/forum
  • "您还应该将服务器配置为始终指向所有内容的索引。"这应该做。我应用了它in this website,它工作正常。您在哪里托管网站?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2018-07-04
  • 2020-09-11
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
相关资源
最近更新 更多