【问题标题】:How to redirect user outside of react but on the same domain?如何将用户重定向到反应之外但在同一个域上?
【发布时间】:2019-11-18 14:03:06
【问题描述】:

我的应用是用 react 和 Symfony 4 构建的。

我将 Symfony 4 用于所有后端以及网站的所有公共部分以实现 SEO 目的(博客/登录页面/法律等)。

现在我想将我的用户从我的 react 应用重定向到我的 webapp(在他/她注销之后)。 例如,我希望 my-app.com/logout 在 Symfony 网页上,而不是在我的 react 应用程序上。所以从my-app.com/dashboard,如果我点击注销(或登录页面或博客),我会转到my-app.com/logout(或登录页面或博客)。

我该怎么做?一位朋友告诉我我应该创建一个子域。有没有其他办法?

非常感谢。

【问题讨论】:

  • 你可以简单地从 react 应用重定向。为什么不呢?

标签: javascript reactjs symfony react-router symfony4


【解决方案1】:

如果重定向外部反应应用程序,你为什么不使用window.location.href?试试看。

【讨论】:

  • 是的,只要路由匹配应用程序“外部”,您设置window.location.href 并硬重新加载页面。服务器应该在那个 URL 中知道哪个来提供其他 HTML 页面而不是 React HTML。
  • 谢谢大家,我认为这太容易了! Ok 将尝试接受您的回答。
【解决方案2】:

我会让Symfony handle all the routing

我们有类似的设置,React App 和 Symfony 后端,我们的 git 存储库具有以下结构:

--
  -- frontend
  -- symfony

frontend 包含所有 React 内容。

我们只将 symfony 部分部署到我们的 Web 服务器(通过 Jenkins),并且在构建期间 index.html 和资产被复制到 symfony 文件夹中。所以我们的 package.json 看起来像这样:

"scripts": {
...
  "build": "npm run build && cp build/index.html ../symfony/templates/index/index.html.twig && cp -R build/static/ && cp -R build/static/* ../symfony/public/static/",
},
"homepage": "/static/",

因此,对于 /dashboard 或 /index 或仅 / -> 提供您的反应内容,并为 /logout 或 /blog 等其他页面/路由创建单独的路由、控制器和模板。

【讨论】:

  • 谢谢@Chris,我正在为平台 atm 服务。你知道有什么好的文档可以正确地从 S4 重定向到 React 吗?
  • @MilesM。什么是“平台atm”?恐怕,我还是不完全明白,你所说的“重定向”是什么意思。
  • 嗨,克里斯,谢谢你的回答,我为糟糕的英语语法道歉。我的问题是:我正在尝试建立一个同时服务于 symfony/php 后端和 React 的平台。我正在寻找很好的文档来解释如何做到这一点(不必与 symfony 一起使用)。到目前为止,我发现的只是 SO 问题和答案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 2012-04-19
相关资源
最近更新 更多