2014-07-25 28 views
1

我是Ruby on Rails(來自C#/ ASP.NET)的新手。我的問題是關於使用PaperClip和ImageMagick時發生的服務器相關更改。我按照教程學習如何使用PaperClip。所以當我在我的筆記本電腦Mac OS上安裝ImageMagick以使用PaperClip gem時,情況似乎非常簡單。瞭解在Ruby on Rails上使用ImageMagick和PaperClip的服務器設置

很明顯,這意味着ImageMagick在開發過程中安裝在本地計算機上,然後在Heroku上進行生產。是否有任何東西放在我的Ruby應用程序ImageMagick(代碼,配置更改等)?當我將我的Ruby應用程序推送到Heroku時,事情似乎對ImageMagick和PaperClip都起作用。

ImageMagick安裝的組件如何以及在哪裏推到Heroku? ImageMagick不是一個寶石,所以我只是想了解像ImageMagick這樣的本地開發安裝軟件如何轉移到像Heroku這樣的生產環境。

當Heroku推送時,ImageMagick除了PaperClip gem之外,還安裝在Heroku服務器(或任何服務器)上?試圖瞭解像ImageMagick和gem這樣已安裝的軟件的使用情況,以及如何將事物推送到生產環境中,並在推向生產之後「自動」地與應用程序集成。

我想了解它是如何工作的,因此我可以部署在不同的服務器環境中(例如Rackspace而不是Heroku),並且我想了解我必須手動安裝/設置vs安裝才能正常工作。我希望這是有道理的。

這裏的任何幫助表示讚賞。

回答

1

答案很簡單(我不能讓自己讀你的散文)是要認識到Rails的Ruby的運行,這意味着它利用語言的gem系統

當您安裝的寶石,有兩個你必須考慮的事情。首先,大多數寶石只是Ruby的「內部」;這意味着他們將提供API或某些程序化功能;寶石的第二束與第三方軟件工作 - 比如MySQL或ImageMagick的

當你使用它接口與其他軟件,該軟件需要安裝(這樣的寶石可以使用它)的瑰寶。這就是問題的開始發生了許多人使用ImageMagick

-

回形針

你必須記住,Paperclip依賴於ImageMagick的運行

從回形針github repo

回形針旨在作爲活動的 記錄的簡易文件附件庫。其背後的意圖是保持設置儘可能簡單,並儘可能像處理其他屬性一樣處理文件。這意味着 它們不會保存到磁盤上的最終位置,如果設置爲零,它們也不會被刪除,直到調用ActiveRecord :: Base#save。如果需要,它根據大小和存在管理驗證。如果需要,它可以 將其分配的映像轉換爲縮略圖,並且 的先決條件與安裝ImageMagick一樣簡單(對於大多數 現代基於Unix的系統而言,安裝正確的 軟件包一樣簡單)。附加文件通過易於理解的規範保存到文件系統中,並在瀏覽器中引用爲 ,該規範具有合理且有用的默認設置 。

回形針可以專用於ImageMagick來管理上傳的圖像。 ImageMagick是一個「可選的額外」,允許您即時裁剪/編輯圖像。像ffmpeg(相當於ImageMagick的視頻),你可以自己運行回形針

如果你想裁剪圖像等 - 你將不得不在你的系統上安裝ImageMagick的庫文件。這是簡單的在Linux上,棘手的Windows

-

Heroku的

我們在Heroku上非常幸運的目的是給回報率穩定的環境與運行。也就是說,Heroku通過提供儘可能多的功能來實現這一點 - 包括在系統上安裝ImageMagick的能力

Heroku在亞馬遜的AWS基礎架構上運行linux。這意味着使用ImageMagick相對簡單 - 只需將其添加到您的gemfile文件中& Heroku將處理其餘的文件

0

查看位於Rails應用程序根目錄下的Gemfile。在那裏你應該有你的應用程序使用的所有寶石。這個文件被bundler Gem使用;當你想在新機器上部署應用程序時,你不必一個接一個地安裝Gems。只要運行bundle install,打包商就會照顧寶石。

在Heroku中,這是自動化的。 git push到的Heroku之後,正在做必要的措施,像bundle installrake db:migrate

請注意有一個額外的文件,Gemfile.lock,包含版本的寶石。這是爲了確保新系統上的打包程序將安裝與您的版本相同的Gems。

相關問題