将ReactJS(带网页包)部署到S3&;云锋
我有一个ReactJS应用程序,当我执行将ReactJS(带网页包)部署到S3&;云锋,reactjs,amazon-s3,webpack,amazon-cloudfront,Reactjs,Amazon S3,Webpack,Amazon Cloudfront,我有一个ReactJS应用程序,当我执行npm构建时,它会生成一个dist文件夹。这可以上传到亚马逊的S3,一切都很好 我希望持续部署此应用程序,因此我的想法是部署到s3://RANDOM\u STRING/,生成: 随机字符串/js 随机字符串/css 随机字符串/index.html 就我所知,我无法告诉S3使用子目录作为web根目录,因此我查看了CloudFront并将源目录更新到该目录。这需要大量时间进行更新,实际上无法通过aws cli完成,因此连续部署将被破坏 我已经研究过使用文
npm构建时,它会生成一个dist
文件夹。这可以上传到亚马逊的S3,一切都很好
我希望持续部署此应用程序,因此我的想法是部署到s3://RANDOM\u STRING/
,生成:
随机字符串/js
随机字符串/css
随机字符串/index.html
就我所知,我无法告诉S3使用子目录作为web根目录,因此我查看了CloudFront并将源目录更新到该目录。这需要大量时间进行更新,实际上无法通过aws cli
完成,因此连续部署将被破坏
我已经研究过使用文件加载器
重写url()
调用,将随机字符串
包含到部署资产中,但这感觉非常“难看”
有没有人有过这种部署的经验,可以帮我吗?您是否尝试过设置默认的根对象?您可以将其配置为子目录
请参见此处:是否尝试设置默认的根对象?您可以将其配置为子目录
请参见此处:然后我的用户将看到https://myapp.com/hfsdjkhfjskhfjsk/index.html
我希望避免这种情况,我明白你的意思。。。我想您可能正在推动S3的边界,此时需要考虑EC2实例(对Web服务器进行更精细的控制),然后我的用户会看到<代码>https://myapp.com/hfsdjkhfjskhfjsk/index.html
我希望避免这种情况,我明白你的意思。。。我想您可能正在推动S3的边界,此时需要考虑EC2实例(对于Web服务器的更精细的控制)是随机变量字符串桶名,还是桶内的路径?BukTi猜想中的路径,我总是可以部署到一个新的桶并改变DNS,但这也不正确:)我们使用CI将其部署到S3存储桶中,但只覆盖存储桶中的现有文件,尽管任何js资产都有缓存破坏文件名。使用自定义ssl证书在存储桶前面运行cloudfront。因此,您需要要求cloudfront使index.html无效?如何清理旧部署?RANDOM_STRING是bucket名称还是bucket中的路径?bucket中的路径?我想我可以随时部署到新bucket并更改DNS,但这也不正确:)我们使用CI部署到S3 bucket,但只覆盖bucket中的现有文件,尽管任何js资产都有破坏缓存的文件名。使用自定义ssl证书在存储桶前面运行cloudfront。因此,您需要要求cloudfront使index.html无效?如何清理旧的部署?