我已经与Heroku管道一起建立了一个Rails应用程序,以便能够自动将我们的分阶段环境推广到生产中。主推-> CI的工作流程运行->、分期、部署->产品,对我们非常有用。
我们的资产正与亚马逊Cloudfront一起分配。我为暂存环境和生产环境设置了单独的发行版,我在环境中配置了这些发行版:
# Environment variable configured per environment
config.action_controller.asset_host = ENV['ASSET_HOST']这个设置出现了一个问题。即使我配置了每个环境的asset_host,资产都是在暂存环境中预编译的,并且--当使用Heroku管道进行推广时--也将在生产中使用。这会引起我们的自定义字体,CORS的问题。
我曾想过为多个来源配置一个单一的Cloudfront发行版,但没有弄清楚。此外,我真的想保留我们当前的工作流程,因为它为我们启用了CD。
发布于 2017-07-13 09:54:54
将Cloudfront配置为源和行为的阶段和生产环境都是解决方案。
要使其正常工作,asset_host在暂存和生产中应该是相同的。
Heroku解释非常好:
对于许多在阶段和生产之间共享CDN的应用程序来说,这是令人惊讶的,但是不会引起任何问题。您可以手动将两者配置为具有相同的“asset_host”。这是因为即使在暂存应用程序上修改了资产的副本,所有的资产都是指纹,而“生产”应用程序将指向浏览器正确的指纹。暂存应用程序将提供多达3个旧的资产副本,CDN应该无限期地保持资产缓存。
https://stackoverflow.com/questions/37653073
复制相似问题