【问题标题】:Server not responding to requests after Carrierwave uploadCarrierwave 上传后服务器未响应请求
【发布时间】:2013-06-01 03:39:55
【问题描述】:

我尝试使用 Carrierwave 上传图片,但上传一直挂在没有结束上传或出现错误的情况下。

之后,服务器不再响应任何请求,即使我重新启动它也是如此。当我现在启动服务器时,它正常启动,服务器日志只是说“连接到由 database.yml 指定的数据库”。但是,它不响应任何请求,使浏览器永远挂起等待响应(不会引发错误)。

这发生在我尝试使用 Carrierwave gem 上传之后,所以我认为这可能是相关的。虽然我不明白为什么/如何发生这种情况。

对不起,这里有更多信息:

这发生在开发中,在 Windows 8 中,我正在使用 RMagick。 我重新启动计算机,服务器再次启动以响应请求。当我尝试上传时,服务器没有响应请求并且无限期地挂在没有抛出错误或响应的情况下。之后,服务器停止响应任何请求。

在应该存储图像的目录中,我找到了一个“tmp”目录,其中有 2 张图像,我上传的原始图像和一个“小”图像,让我认为问题是在第一次调整 RMagick 大小后发生的。

这是一些数据:

Rails 版本:3.12.2 载波版本: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

【问题讨论】:

  • 您能否提供有关您的应用程序的更多详细信息?像 Rails 版本,Carrierwave 版本。另外,这发生在开发还是生产中?你在使用 RMagick、MiniMagick 吗?您可以发布您的carrierwave初始化程序以及您的上传文件吗?你安装了你的模型吗?
  • 对不起,之前应该提供更多详细信息。已编辑!

标签: ruby-on-rails ruby-on-rails-3 imagemagick carrierwave rmagick


【解决方案1】:

不明白问题出在哪里,但我在 unbuntu 中尝试过,效果很好,所以这是 Windows 问题。可能它与 ImageMagick 函数有关(几乎所有与图像宝石和窗口有关的问题..)。

我会将这个答案标记为已解决,尽管没有对问题做出任何解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多