我正在使用Ember-Cli制作一个Ember应用程序,它与服务器端应用程序进行通信。因为Ember-Cli项目使用自己的服务器运行(默认情况下在端口4200上),所以我必须在开发中运行与Ember应用程序不同的端口(localhost:8080
)上的服务器。然而,在生产中,两者将在同一端口上运行。
问题:如何配置Ember(在我认为的config / environment.js中),以便Ember-Data和所有ajax请求将在localhost:8080开发中进行(尽管Ember应用程序正在运行)在生产中,Ember-Data和ajax请求将查询运行服务器端应用程序的任何端口(将托管客户端应用程序)。
Ember-Cli docs提到可以进行一些配置(例如,您可以更改Ember-Cli运行的端口),但是,它没有说明如何完成上述
答案 0 :(得分:3)
您只是希望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
});