在 Ember-Cli 中配置服务器和客户端端口

configuring server and client ports in Ember-Cli

我正在使用 Ember-Cli 制作一个 Ember 应用程序,它与服务器端应用程序对话。因为 Ember-Cli 项目 运行 使用自己的服务器(默认情况下在端口 4200 上),所以我必须 运行 我的服务器在不同的端口(localhost:8080)上开发Ember 应用程序。然而,在生产中,两者将 运行 连接在同一个端口上。

问题:我如何配置 Ember(我假设在 config/environment.js 中)以便 Ember-Data 和所有 ajax 请求将被发送到 localhost:8080 在开发中(尽管 Ember 应用程序在 4200 上 运行ning)并且在生产中,Ember-Data 和 ajax 请求将查询服务器端应用 运行 正在使用的任何端口(这将托管客户端应用)。

Ember-Cli docs 提到可以进行一些配置(例如,您可以更改 Ember-Cli 运行s 打开的端口),但是,它没有说如何完成以上

您只想 ember 根据环境为您的 API 使用不同的端口?听起来您需要让您的应用程序适配器从您的环境文件中获取一个值

//environment.js
var ENV = {
  ...
  apiHost: 'https://path-to-production-api.com',
  ...
}

if (environment === 'development') {
   ENV.apiHost: 'http://localhost:8080'
}
ENV.contentSecurityPolicy['connect-src'] += ' ' + ENV.apiHost;

//adapters/application.js
import DS from 'ember-data';
import ENV from 'portal/config/environment';
export default DS.RESTAdapter.extend({
   host: ENV.apiHost
});