Rails:由apache提供服务的资产404

时间:2016-11-28 11:51:20

标签: ruby-on-rails apache ruby-on-rails-4

我有一个生成png文件的API。

用户请求生成,我回复了生成文件的路径。

这是我生成网址的方式:

url_for(:controller => :anaction, :action => :download, :path => "#{@relative_dir}/face", :format => 'png'

这是一个看起来像这样的网址:

http://0.0.0.0:3000/anaction/aging/download/%2FTMP_20161128204315_346482_695%2Fface.png

应由

处理
  def download
    send_file "#{Rails.public_path}/#{params[:path]}.#{params[:format]}"
  end

根据我的路线

  get '/anaction/aging/download/:path' => 'mpsynthesizer_aging#download'

它在我的开发环境中就像我的nginx服务器上的魅力一样,但在我的apache服务器上失败了。

我得到一个普通的apache HTTP400错误,似乎请求永远不会转发到rails。

我使用rails 4.2.6

有什么我误解了吗?

1 个答案:

答案 0 :(得分:0)

我最终使用

    render body: IO.binread(result_file), content_type: "image/png"