如何在具有不同来源和行为的同一 CloudFront 分发域名上部署 React App 和 WordPress?

如何在具有不同来源和行为的同一 CloudFront 分发域名上部署 React App 和 WordPress?

我在利用不同的来源和行为在同一个 CloudFront Distribution 域名上部署 React 应用程序和 WordPress 网站时遇到了挑战。

这是我的设置:

  • 我有一个静态网站托管域,通过带有 Bucket 网站端点的 S3 存储桶为 React 应用程序提供服务,例如

http://react-example-site-build.s3-website-us-east-1.amazonaws.com

  • 此外,我在另一个域名上托管了一个 WordPress 网站。例如

http://wordpress.example.com

CloudFront 分发来源: 我已经配置了具有两个来源的 CloudFront 分发:

  1. S3 静态网站端点:react-example-site-build.s3-website-us-east-1.amazonaws.com
  2. WordPress 域名:wordpress.example.com

行为: 在 CloudFront 分发设置中,我设置了六种行为:

  1. React 应用路由来源的五种行为:
  • /signin
  • /signup
  • /user/*
  • /forget
  • /resetpassword
  1. WordPress 源的一个默认行为:
  • Default(*)
  • 此外,对于任何与上面提到的 React 应用程序路由不匹配的路由,它们将重定向到从 S3 静态端点提供服务的 WordPress 站点。

缓存失效: 为了处理更新,我包含了以下缓存失效:

  • /resetpassword
  • /user/*
  • /forget
  • /signin
  • /*
  • /signup

面临的问题: 尽管配置正确,我仍然遇到以下问题:

  1. 404 错误:最初,我遇到了 React 应用行为的 404 错误(/signin, /signup, /user/*, /forget, /resetpassword)。为了解决这个问题,我(index.html)在 S3 静态网站托管配置中添加了 Index 和 Error 文档。虽然这解决了错误,但我仍然在控制台中看到 404 错误。

  2. 用户页面显示问题:当导航到该/user/*路线下的页面时,最初会出现内容,但登录后很快就会消失。

请求协助:

我寻求帮助以了解我的逻辑和配置是否正确。如果正确,为什么我会遇到这些问题?如果不是,我希望得到指导,了解如何在具有不同来源和行为的同一 CloudFront Distribution 域名上有效地部署 React 应用程序和 WordPress 网站。

任何关于更新我现有的分发配置的建议或解决方案都将不胜感激。

感谢您的见解和帮助。

相关内容