Ruby on rails Rails曲别针-下载文件已损坏

Ruby on rails Rails曲别针-下载文件已损坏,ruby-on-rails,paperclip,Ruby On Rails,Paperclip,我用回形针做附件 当我下载文件时,它被破坏了 文件可在生产时下载 send_file attachment.data.path, :type => attachment.content_type, :x_sendfile => true, :stream => false 它在本地机器上工作正常,但在生产中出现问题,但是我已将env设置为生产首先要做的是检查您试图发送的文件是什么 send_file attachment.data.path, :type => atta

我用回形针做附件

当我下载文件时,它被破坏了

文件可在生产时下载

send_file attachment.data.path, :type => attachment.content_type, :x_sendfile => true, :stream => false

它在本地机器上工作正常,但在生产中出现问题,但是我已将env设置为生产

首先要做的是检查您试图发送的文件是什么

send_file attachment.data.path, :type => attachment.content_type, :x_sendfile => true, :stream => false
在您的
send_文件
语句之前添加这行代码:

logger.info "SENDING FILE: #{attachment.data.path.inspect}"
然后查看日志,检查路径,看看文件是否真的存在

我怀疑您的生产和开发模式具有不同的数据库数据(这是自然的,也是预期的),但文件系统中保存的文件与数据库不同步


环境可能有一些不同之处,但是路径是我最先考虑的问题。

首先要检查你要发送的文件是什么。 在您的

send_文件
语句之前添加这行代码:

logger.info "SENDING FILE: #{attachment.data.path.inspect}"
然后查看日志,检查路径,看看文件是否真的存在

我怀疑您的生产和开发模式具有不同的数据库数据(这是自然的,也是预期的),但文件系统中保存的文件与数据库不同步


可能在环境中有一些不同之处,但是路径是我最先考虑的问题。请/请告诉我你对文件有什么样的问题?它是如何被腐蚀的?如何检查?文件打开时为空,因为未完全传输,接收到1字节(IDM显示为0.00%),请告诉我文件有哪些类型的问题?它是如何被腐蚀的?如何检查?当文件打开时,它是空白的,因为它没有完全传输,收到的1字节(IDM显示0.00%)文件类型是pdf,并且inspect打印文件的正确路径,文件就在那里。它还会在production中发送X-Sendfile头您的生产中是否有相同的服务器?您的服务器是否理解X-Sendfile头文件?例如,对于“nginx”,您应该使用“X-Accel-Redirect”而不是“X-Sendfile”。服务器是apache,它已经解决了。问题出在生产服务器上,发生了一些迁移,混淆了正确的路径文件类型为pdf,inspect打印文件的正确路径,文件在那里。它还会在production中发送X-Sendfile头您的生产中是否有相同的服务器?您的服务器是否理解X-Sendfile头文件?例如,对于“nginx”,您应该使用“X-Accel-Redirect”而不是“X-Sendfile”。服务器是apache,它已经解决了。问题是在生产服务器中,发生了一些迁移,从而混淆了正确的路径