2

ここで説明するように、rake-pipelineを使用してEmber.jsアプリの開発環境をセットアップしています。

開発中、私のhtmlとjavascriptはwebrick(私にはよくわからないrake-filter magic)http://0.0.0.0:9292によって提供され、Apacheによって提供されるphpで開発されたRESTサービスがあります。http://somename.local

ブラウザーのアンチクロスドメインajaxが原因で、クライアントアプリからのajax呼び出しが失われています。この問題を回避するにはどうすればよいですか?

4

2 に答える 2

2

Assetfile でプロキシを直接構成することはできません。config.ruファイルを作成し、rackupコマンドを使用してサーバーを起動する必要があります。

アセットファイルの例を次に示します。

input "app"
output "public"

そしてconfig.ru:

require 'rake-pipeline'
require 'rake-pipeline/middleware'
require "rack/streaming_proxy" # Don't forget to install the rack-streaming-proxy gem.

use Rack::StreamingProxy do |request|
  # Insert your own logic here
  if request.path.start_with?("/api")
    "http://localhost#{request.path.sub("/api", "")}"
  end
end

use Rake::Pipeline::Middleware, 'Assetfile' # This is the path to your Assetfile
run Rack::Directory.new('public') # This should match whatever your Assetfile's output directory is

rack および rack-streaming-proxy gem をインストールする必要があります。

于 2012-01-15T08:09:59.650 に答える
1

Rack::Proxyを使用して、必要なリクエストをプロキシに送信するだけです。

  if request.path.start_with?("/api")
    URI.parse("http://localhost:80#{request.path}")
  end
于 2012-01-13T15:57:10.570 に答える