将 Ember CLI 与 Django 应用集成

Integrating Ember CLI with Django app

在使用 Ember CLI 之前,我在 Django 项目中创建了一个 index.html 页面,加上 App.js 文件,一切似乎都运行良好。 现在 Ember 正在使用 CLI,似乎没有简单的方法将 Ember CLI 项目集成到 Django 应用程序中。 所以我读到人们建议使用 Ember CLI 开发前端,使用 Django 开发 REST API。然而部署并不容易,因为你需要复制 Django 静态文件夹下的 Ember dist 文件夹,加上将 Ember app 下的所有静态资产 url 更改为指向 Django 静态路径。

看来,没有简单的方法可以将两者集成到一个开发过程中。

你们有什么关于如何集成开发和部署过程的建议吗?

谢谢。

对于这样的项目,您应该为您的服务器应用程序和客户端应用程序使用单独的存储库。

考虑一个有 4 个代码存储库、1 个服务器和 3 个客户端的项目:

  • myproject(用 Python 编写的 Django 应用程序,为客户提供 API)
  • myproject-web(用 JavaScript 编写的 Ember.js 网络客户端)
  • myproject-ios(用Swift编写的iOS客户端应用程序)
  • myproject-android(用Java编写的Android客户端应用程序)

核心应用程序将部署到能够托管 Python 应用程序(例如 uWSGI)的服务器。

因为 Ember.js 项目最终是一个静态资源,您可以从几乎任何地方(例如 NGINX)提供它,并将它指向一个单独的 API 服务器托管 Django 项目(例如 https://app.myproject.com/api/). See documentation on configuring ember-django-adapter to use a custom API host: http://dustinfarris.com/ember-django-adapter/configuring/

iOS 当然会部署到 Apple App Store,Android 项目会部署到 Google Play。

每个存储库都是一个独立的代码库,具有不同的要求和部署策略——这就是为什么最好将它们分开,这样您就可以单独考虑并使用它们。仅仅因为 Django 可以处理静态资产并不意味着你应该依赖它——试图在 Django 项目中托管一个 Ember.js 项目(或任何其他 JS 框架项目)只会让事情变得过于复杂。希望对您有所帮助。

我目前正在实施由 Django 提供的 Ember-CLI 应用程序。

以下是我遵循的步骤:

在 Django 上:

  1. 在您的 django 项目中创建一个子项目(即:ember
  2. 安装 django-redis-views 将从 redis 为您的 index.html 提供服务。
  3. 在 AWS(或其他存储产品)上创建 S3 存储桶 + CDN 以存储您的资产

上 Ember:

  1. 安装 ember-deploy-redis & ember-deploy-s3
  2. 将凭据添加到 config.deployment 并更正 ember-cli-build.js
  3. 中的指纹
  4. 部署ember

有用link: