1

サーバーとして Rails を使用している EmberJS アプリがあります。私の Javascript コードには、アプリの環境に応じて変化する変数がいくつかあります。ステージングでは staging.domain.com に移動する必要があり、本番環境の場合は domain.com に移動する必要があります。環境を変更する前にすべての定数変数を手動で変更するのではなく、環境によって異なる定数を JS ファイルに設定する最良の方法は何ですか? これが必要な理由は、ember アプリが POST 要求のために外部サーバーと通信しているためです。

4

1 に答える 1

1

Rails でファイル (ember app js ファイルを含む) を提供していると思いますので、これを実現する方法の 1 つは、これらのファイルに rails env 変数を挿入することです。たとえば、index.html で次のようにします。

index.html.erb

...
<%= javascript_tag do %>
  window._current_host = "<%= Rails.env['SERVER_NAME'] %>"
<% end %>
...

window._current_hostその後、必要な場所ならどこでも、JavaScript コードでそのグローバル変数を使用できます。

app.js

...
App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    var url = window._current_host + '/somepath/...';
    return Ember.$.getJSON(url, function(data) {
      return data;
    });
  }
});
...

あるいは:

DS.RESTAdapter.reopen({
  host: window._current_host
});

上記は単なる疑似コードであり、jsut を同じように実行する方法は他にもあるはずですが、アイデアは理解できると思います。

それが役に立てば幸い。

于 2013-10-11T08:55:29.417 に答える