2016-07-05 108 views
5

尝试设置服务器端(通用,同构)呈现的反应应用程序,该应用程序通过CircleCI使用Heroku为节点/快速应用程序部署,Cloudfront作为CDN部署。通用反应渲染与CDN和heroku

我有一些麻烦概念化这将如何工作。流量似乎非常简单,除了几个部分。一旦我们将构建的资产部署到像CloudFront这样的CDN,我们如何将它们连接到我们位于Heroku上的index.html文件? (这个索引文件是由Heroku节点应用程序构建的,并作为服务器端渲染的基础)。但我希望它包含CDN资产的链接,而不是Heroku建造的资产。 (CircleCi运行webpack,Heroku部署后也是如此)

有没有人遇到过这个?

+0

这里有一个样板我使用的通用反应的应用程序。它部署到heroku并可以使用云端。而不是使用index.html文件将其部署到heroku,而服务器提供'Html.jsx'组件。 https://github.com/MadeInHaus/react-flux-gulp-starter –

+0

如果担心如何解决这些文件,请保持版本同步,并处理部署,也许我的[delivr](https:// github。 com/sholladay/delivr)模块和相关的build- *模块将帮助你。它将您的代码放在S3上,以可预测的生产就绪方式运行,然后您将CloudFront设置为简单的缓存代理。 –

+0

你知道了吗?你使用的是webpack吗? –

回答

0

您可以使用类似https://github.com/kossnocorp/assets-webpack-plugin的东西来创建一个.json文件,该文件具有您的内置和散列webpack文件的目录/名称。然后,您可以使用这个.json文件来确定您的标签在服务器端生成的html中的样子。

  1. 用的WebPack建立你的客户端捆绑,并生成带有哈希文件的名称
  2. 建立自己的服务器端捆绑一个以.json文件。它读取上面以.json文件,并注入了正确的文件名到脚本值乌尔HTML
  3. 部署到Heroku的/上传到CDN