2016-07-05 123 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