我尝试使用Carrierwave上传图片,并且上传被永久挂起而不会导致上传或出错。
之后,即使重新启动服务器,服务器也不会响应任何更多请求。当我现在启动服务器时,它正常启动,服务器日志只是说“连接到database.yml指定的数据库”。但是,它不响应任何请求,使浏览器永远等待响应(不会抛出错误)。
这是在我尝试使用Carrierwave gem进行上传之后发生的,所以我认为这可能是相关的。虽然我不明白为什么/如何发生这种情况。
对不起,按此处要求提供更多信息:
这正在开发中,在Windows 8中我正在使用RMagick。 我重新启动计算机,服务器再次启动以响应请求。当我尝试进行上传时,服务器没有响应请求并无限期地挂起而没有抛出错误或响应。之后,服务器停止响应任何请求。
在应该存储图像的目录中,我找到了一个“tmp”目录,其中包含2个图像,我上传的原始图像和“小”图像,让我觉得在第一次调整RMagick之后问题就出现了。
以下是一些数据:
Rails版本:3.12.2 Carrierwave版本:0.8.0 RMagick版本:2.13.2 ImageMagick版本:6.8.1-0
上传者类:
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
include CarrierWave::RMagick
# Choose what kind of storage to use for this uploader:
storage :file
# Override the directory where uploaded files will be stored. # This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
def default_url
'/uploads/user/' + [version_name, 'no_photo.png'].compact.join('_')
end
version :small do
process :resize_to_limit => [30, 30]
end
version :medium do
process :resize_to_limit => [70, 70]
end
version :large do
process :resize_to_limit => [125, 125]
end
end
答案 0 :(得分:0)
无法理解问题是什么,但我在unbuntu中尝试了这个并且它工作得很好,所以这是一个Windows问题。可能它与ImageMagick函数有关(几乎所有与图像宝石和窗口有关的问题......)。
虽然没有对问题进行任何解释,但我会将此答案标记为已解决。