【问题标题】:Understanding Server Set-up for Using ImageMagick and PaperClip with Ruby on Rails了解在 Ruby on Rails 中使用 ImageMagick 和 PaperClip 的服务器设置
【发布时间】:2014-09-16 23:59:48
【问题描述】:

我是 Ruby on Rails 的新手(来自 C#/ASP.NET)。我的问题是关于使用 PaperClip 和 ImageMagick 时发生的与服务器相关的更改。我按照教程学习了如何使用 PaperClip。因此,当我在我的笔记本电脑 Mac OS 上安装 ImageMagick 以使用 PaperClip gem 时,事情看起来非常简单。

显然,这意味着 ImageMagick 在开发期间安装在我的本地计算机上,然后在 Heroku 上推送到生产环境之前。我的 Ruby 应用程序中是否有任何用于 ImageMagick 的内容(代码、配置更改等)?当我将 Ruby 应用程序推送到 Heroku 时,ImageMagick 和 PaperClip 似乎都适用。

ImageMagick 安装的组件是如何以及在哪里推送到 Heroku 的? ImageMagick 不是宝石,所以我只是想了解如何将本地开发安装的软件(如 ImageMagick)转移到生产环境(如 Heroku)。

当我进行 Heroku 推送时,除了 PaperClip gem 之外,ImageMagick 是否安装在 Heroku 服务器(或任何服务器)上?只是想了解 ImageMagick vs gems 等已安装软件的使用,以及如何将事物推送到生产环境并在推送到生产后“自动”地与应用程序集成。

我想了解它是如何工作的,以便我可以在不同的服务器环境(例如 Rackspace 而不是 Heroku)上进行部署,并且我想了解我必须手动安装/设置与安装什么才能让事情正常工作。我希望这是有道理的。

感谢您提供任何帮助。

【问题讨论】:

    标签: ruby-on-rails ruby heroku imagemagick paperclip


    【解决方案1】:

    简单的答案(我无法阅读您的散文)是意识到 Rails 在 Ruby 上运行,这意味着它利用了语言的 gem 系统

    当您安装 gems 时,您必须考虑两件事。首先,大多数 gem 只对 Ruby 来说是“内部的”;意味着他们将为 API 或程序化的东西提供功能;第二组 gem 与 第三方软件 配合使用 - 例如 MYSQL 或 ImageMagick

    当您使用与其他软件接口的 gem 时,需要安装该软件(以便 gem 可以使用它)。这就是许多使用 ImageMagick 的人开始出现问题的地方

    --

    回形针

    你必须记住Paperclip 依赖 ImageMagick 来运行

    来自回形针github repo

    Paperclip 旨在作为 Active 的简单文件附件库 记录。其背后的目的是使设置尽可能简单,并且 尽可能像对待其他属性一样对待文件。这意味着 它们不会保存到磁盘上的最终位置,也不会 如果设置为 nil,则删除,直到调用 ActiveRecord::Base#save。它 如果需要,根据大小和存在管理验证。它可以 如果需要,将其分配的图像转换为缩略图,并且 先决条件就像安装 ImageMagick 一样简单(对于大多数 现代基于 Unix 的系统,就像安装正确的一样容易 包)。附加的文件被保存到文件系统并被引用 在浏览器中通过一个易于理解的规范,它有 合理且有用的默认值。

    Paperclip 可以专门用于 ImageMagick 来管理上传的图像。 ImageMagick 是一个“可选的附加功能”,允许您即时裁剪/编辑图像。像ffmpeg(相当于ImageMagick的视频)一样,你可以自己运行Paperclip

    如果您想裁剪图像等 - 您必须在系统上安装 ImageMagick 的库文件。这在 Linux 上很简单,在 Windows 上要复杂得多

    --

    Heroku

    我们非常幸运,Heroku 旨在为 RoR 提供一个稳定的运行环境。也就是说,Heroku 通过提供尽可能多的功能来做到这一点——包括在系统上安装ImageMagick 的能力

    Heroku 在亚马逊的 AWS 基础设施上运行 linux。这意味着使用 ImageMagick 相对简单 - 您只需将其添加到您的 gemfile 中,Heroku 将处理剩下的事情

    【讨论】:

      【解决方案2】:

      查看位于 Rails 应用程序根目录的Gemfile。在那里,您应该拥有应用程序使用的所有 Gem。该文件供bundlerGem使用;当您想在新机器上部署应用程序时,您不必一一安装 Gems。只需运行 bundle install,打包程序就会处理 Gems。

      在 Heroku 中,这是自动化的。在git push 到heroku 之后,它正在执行必要的步骤,例如bundle installrake db:migrate 等。

      请注意,还有一个附加文件Gemfile.lock,其中包含带有版本的宝石。这是为了确保新系统上的捆绑程序将安装与您的版本相同的 Gem。

      【讨论】:

        猜你喜欢
        • 2020-06-04
        • 1970-01-01
        • 2012-08-03
        • 2014-03-22
        • 2013-09-03
        • 2015-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多