我想构建一个前端(静态)和后端(API)的Web应用程序,除了共享同一个域,完全分开。通常我会认为这没有问题,但我有一些特殊要求:
- API 在Heroku上运行(使用 Django 和 TastyPie)
- 所有静态内容,包括 html 文件都将托管在Amazon S3上
前端应用程序将是一个单页 Javascript 应用程序(带有一个基本模板,让我们调用它index.html
)并通过 AJAX 从 API 填充内容。由于我还不想为 API 实现 CORS,并且希望遵循同源策略,因此我希望 API 和 S3(存储桶)上的文件以某种方式共享同一个域。我也不想使用 Django 的平面应用程序或index.html
通过 Django 渲染。
我扫描了 Google 和 stackoverflow,但到目前为止找不到合适的解决方案。据我阅读天真的方式(以某种方式将域指向 Heroku 应用程序和 S3 存储桶)是不可能的。我想到了一些解决方案,但没有找到以下来源:
- 如果可能,将域名指向 Heroku 和 S3 存储桶上的 API
- 将一些选项传递给 Heroku 以呈现托管在 S3(ProcFile?)上的 html,使用 Django 和 S3 库来获取其他静态资产
- 也许用 boto 做一些事情来实现这一点
- 其他完全不同的建议?
以前有没有人尝试过这样的事情并且可以指出我正确的方向?
一个补充:稍后我想使用一些lile PhantomJS来使单页应用程序可抓取。理想情况下,爬虫的此输出也应托管在 S3 存储中。