Rails代理控制器没有正确拉动图像,如何正确修改?

yll*_*ate 5 ruby-on-rails ruby-on-rails-3

我必须在Rails 3.1应用程序上实现代理以克服一些跨域JS问题.

到目前为止,我检索网页文本源似乎是正确的,但它通常会错过页面中的图像(可能是相对路径?),然后当我用图像的绝对路径引导它时,它将显示图像的ascii编码而不是比起图像本身,我认为从熟悉该主题的人的代码中可以明显看出原因.

我希望有人能够修改以下代码,以便在图像代理情况下正常工作:

proxy_controller.rb:

class ProxyController < ApplicationController
  def get
    url = URI.parse(params["url"])
    result = Net::HTTP.get_response(url)
      render :text => result.body
  end
end
Run Code Online (Sandbox Code Playgroud)

routes.rb中:

get "proxy" => "proxy#get", :as => "proxy"
Run Code Online (Sandbox Code Playgroud)

通过以下方式呼叫:

http://<my_dev_server>/proxy?url=http://<somedomain.tld>/path/to/page/images/image.jpg
Run Code Online (Sandbox Code Playgroud)

要么

http://<my_dev_server>/proxy?url=http://<somedomain.tld>/path/to/page
Run Code Online (Sandbox Code Playgroud)

eli*_*jah 10

而不是渲染,使用send_data

  • 好吧,是的,这确实是我需要的技巧.通过将原始渲染线修改为:`send_data result.body,:type => result.content_type,:disposition =>'inline'`我能够完成目标. (3认同)