Ruby on rails Rails apache pdf权限401

Ruby on rails Rails apache pdf权限401,ruby-on-rails,apache,devise,ftp,permissions,Ruby On Rails,Apache,Devise,Ftp,Permissions,当我试图访问pdf文件时,为什么会得到401(未经授权),我真是疯了。我有一个提供pdf文档和视频的项目。两者都存储在两个文件夹中,由一个特殊组(我称之为ftp用户)拥有,我可以通过ftp上传文件,但不能直接访问 drwxr-xr-x 12 accademiadipolizia ftp-users 4096 Feb 24 2015 documents/ drwxr-xr-x 2 accademiadipolizia ftp-users 4096 Aug 11 2015 videos/ 文

当我试图访问pdf文件时,为什么会得到401(未经授权),我真是疯了。我有一个提供pdf文档和视频的项目。两者都存储在两个文件夹中,由一个特殊组(我称之为ftp用户)拥有,我可以通过ftp上传文件,但不能直接访问

drwxr-xr-x 12 accademiadipolizia ftp-users 4096 Feb 24  2015 documents/
drwxr-xr-x  2 accademiadipolizia ftp-users 4096 Aug 11  2015 videos/
文件(文档和视频)由rails操作提供,并通过过滤器进行保护,该过滤器检查用户是否为注册用户(权限由Desive设置)

这是相对于pdf文件的操作

  def documents
    filename = File.join([Rails.root, "private", "documents", params[:path]]) + ".pdf"
    respond_to do |format|
      format.pdf{
        send_file filename
      }
    end
  end
其中“private”文件夹是指向documents文件夹的符号链接

以及为行动服务的相对路线:

resources :subjects do
    get 'page', on: :member
  end
  get 'documents/*path', to: "subjects#documents"
而用于视频的则略有不同:

resources :lessons, only: :show do
    member do
      get 'video'
    end
问题是,对于视频(相同的相似操作、相同的文件夹和文件权限、相同的设计过滤器,但不同的路径),一切都正常,而对于文档,我总是得到401

这是服务器的日志跟踪

I, [2016-03-16T13:03:45.580929 #32592]  INFO -- : Processing by SubjectsController#documents as PDF
I, [2016-03-16T13:03:45.581215 #32592]  INFO -- :   Parameters: {"path"=>"castellucci/ordinamento-della-polizia-municipale"}
I, [2016-03-16T13:03:45.583038 #32592]  INFO -- : Completed 401 Unauthorized in 1ms
问题在哪里

编辑:

实际上,提供文件的方式是不同的:在视频的情况下,到视频的链接是带有视频链接的对象的字段(因此路由是对象的一个成员,我认为designe在过滤器方面没有问题),而到文档的链接是到文件的直接链接,所以在这种情况下,是apache提供文件。。。我如何找到解决方法

刚刚添加一个

Rails.logger.info "#{filename}" 
正如@BoraMa所建议的那样,使用capistrano重新部署应用程序(从而重新启动服务器),使事情以正确的方式再次运行。 这不是一个正确的解决方案,但只是跟踪奇怪的行为。
如果有人对所发生的事情有任何线索,请写下来

我认为这与Apache无关,是Rails返回401错误(否则它不会出现在Rails日志中)。我会尽力确保错误与设计无关。例如,能否在
文档
控制器操作中的
响应
块之前添加
Rails.logger.info“发送文件:{filename}”
?如果Desive filter阻止了您,那么日志中将不会写入任何内容,您将得到401错误。您完全正确,这是一个愚蠢的考虑,因为是Rails在回答,而不是Apache直接回答。打印内容如下:RAIL发送文件/var/www/police_production/releases/20160316141840/private/documents/ercolanoni/diritto-amministarivo.pdf问题是文件正在下载中。。。没有更多的401,但一切都没有改变。。。正如您建议的那样,刚刚添加了Logger.info…嗯,也许您在重试之间重新启动了服务器?嗯,至少它现在可以工作了:)哈哈哈,实际上我重新部署了几次来添加这些线路。。。但是更令人沮丧的是。。。谢谢你现在顺便说一句