AWS S3 中的 React App 缺少环境属性

维吉尔333

我为我的项目开发了前端(ReactJs)和后端(Spring boot)。将 FE 部署到 S3 存储桶时遇到以下问题。

我将CodePipeline设置为:

  • 从存储库中提取代码
  • 构建步骤,在这里我还设置了需要的环境变量
  • 部署,将代码提取到 S3 存储桶。

(然后是 CloudfrontRoute 53用于域路由,但我认为这并不重要。)

当我访问我的网站时(您可以尝试salesforce.martinmachava.link)第一次(有时)它工作正常。但是后来通过 Salesforce 的 OAuth 不起作用,我修复了一个错误,但这些更改似乎没有反映在 S3 上。我删除了 S3 存储桶中的所有文件,点击 CodePipeline 中的重新部署按钮。除了仍然存在的错误之外,我有时还会收到以下错误:

  • Uncaught SyntaxError: Unexpected token '<' that come from the first line o main file "<!doctype html><html..."
  • 未捕获的错误:属性 [client_id, client_secret] 未定义,来自我的方法,以确保设置所有环境属性这没有任何意义,它应该在构建步骤中设置。是的,在初始部署中,我缺少那些 env 属性,但我另外将它们添加到构建步骤中。

就像有些文件被缓存了,但我在 S3 中没有找到任何文件缓存设置。真的很奇怪,我遇到了多个问题,而整个 AWS 服务太混乱了,无法找到真正的问题。有什么帮助或建议吗?

jarmod

看起来您正在使用 CloudFront 来交付从您的源 (S3) 提供的资产。CloudFront 是一个 CDN,它在其边缘位置缓存内容。

解决方案可能就像使您的 CloudFront 分配无效一样简单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章