我在利用不同的来源和行为在同一个 CloudFront Distribution 域名上部署 React 应用程序和 WordPress 网站时遇到了挑战。
这是我的设置:
- 我有一个静态网站托管域,通过带有 Bucket 网站端点的 S3 存储桶为 React 应用程序提供服务,例如
http://react-example-site-build.s3-website-us-east-1.amazonaws.com
。
- 此外,我在另一个域名上托管了一个 WordPress 网站。例如
CloudFront 分发来源: 我已经配置了具有两个来源的 CloudFront 分发:
- S3 静态网站端点:
react-example-site-build.s3-website-us-east-1.amazonaws.com
- WordPress 域名:
wordpress.example.com
行为: 在 CloudFront 分发设置中,我设置了六种行为:
- React 应用路由来源的五种行为:
/signin
/signup
/user/*
/forget
/resetpassword
- WordPress 源的一个默认行为:
Default(*)
- 此外,对于任何与上面提到的 React 应用程序路由不匹配的路由,它们将重定向到从 S3 静态端点提供服务的 WordPress 站点。
缓存失效: 为了处理更新,我包含了以下缓存失效:
/resetpassword
/user/*
/forget
/signin
/*
/signup
面临的问题: 尽管配置正确,我仍然遇到以下问题:
404 错误:最初,我遇到了 React 应用行为的 404 错误
(/signin, /signup, /user/*, /forget, /resetpassword)
。为了解决这个问题,我(index.html)
在 S3 静态网站托管配置中添加了 Index 和 Error 文档。虽然这解决了错误,但我仍然在控制台中看到 404 错误。用户页面显示问题:当导航到该
/user/*
路线下的页面时,最初会出现内容,但登录后很快就会消失。
请求协助:
我寻求帮助以了解我的逻辑和配置是否正确。如果正确,为什么我会遇到这些问题?如果不是,我希望得到指导,了解如何在具有不同来源和行为的同一 CloudFront Distribution 域名上有效地部署 React 应用程序和 WordPress 网站。
任何关于更新我现有的分发配置的建议或解决方案都将不胜感激。
感谢您的见解和帮助。