2013-04-05 29 views
-2

對於Ruby on Rails的我想用顯示使用絕對路徑圖像軌

<img src =../../../photo/1.PNG > 

顯示存儲超出了我的app文件夾一些圖片。我使用它並使用..指出它在哪裏圖像,但它不起作用。我使用Win7,有沒有人可以幫助我?

我有一個名爲「showcase」的腳手架生成的MVC,我想要在兩個應用程序中使用相同的展示。 在app1:showcase(我想分享圖像)模型:房子是圖像的名稱。

class Showcase < ActiveRecord::Base 
    attr_accessible :house,:sequence 

    has_attached_file :house, :whiny => false, 
        :styles => { :large => "350x300>", 
            :medium => "120x100>", 
            :thumb => "50x50>"} 
end 

則影像將文件夾中上傳:公共/系統/櫥窗/房/ 000/000/0001/1.PNG

在APP 2

。我創建了一個遷移的展示模型。並使用ActiveResources在app1和app2之間共享數據庫。但是app2不能配置回形針類型。

class Showcase < ActiveResource::Base 
    self.site = "http://localhost:3000" 
end 

我該如何在app2中調用從app1上傳的圖片。

+0

可能的重複:http://stackoverflow.com/questions/8370915/rails-how-to-link-to-assets-outside-the-app-directory – Zippie 2013-04-05 20:19:57

回答

0

如果你想在應用程序之間真的共享圖片,他們是上傳,而不是靜態的資產,然後創建一個系統文件夾中的其他地方,然後進行系統文件夾中每個應用程序都有一個符號鏈接到共享文件夾。這樣你沒有瘋狂的網址路徑,他們都可以評估它,而且你不會以愚蠢或不匹配而告終。

+0

謝謝你的回答,這看起來很合理,我是一個入門鳥,你能否詳細告訴我..我已經編輯了我的問題。 – sun 2013-04-08 16:34:21

+0

它很簡單,而不是在每個應用程序中有一個系統文件夾,有一個「系統」文件夾其他軟件,然後在每個應用程序中有符號鏈接從系統文件夾的位置到新的「系統」文件夾。這樣他們共享相同的上傳文件夾。您也可以使用回形針支持的Amazon S3等服務來完成此操作。 – rovermicrover 2013-04-08 19:33:56

+0

是的,我工作了!所有的圖像現在可以顯示,謝謝sososo多:) – sun 2013-04-08 20:12:08

0

如果您使用rails 3或更高版本,您應該真正使用rails assets管道。將你的圖片放入app/assets/images並調用rails函數,這些函數爲你的資源提供url。 <%= image_tag「rails.png」%>。

欲瞭解更多詳細閱讀以下指導原則: http://guides.rubyonrails.org/asset_pipeline.html

+0

但圖像位於另一個應用程序的摺疊像:public /systems/images/1.png(他們必須在那裏)。因爲我想分享我的兩個rails應用程序的相同部分。你知道軌道允許顯示目前的應用程序之外的圖像嗎? – sun 2013-04-05 20:42:09

+0

它不允許。根URL指的是你的應用程序的目錄。你根本無法超越你的根本位置。我建議您將圖像重複複製到每個應用程序,因爲它們是獨立的應用程序。 – Edward 2013-04-05 20:46:47

+0

另外,如果你真的需要這樣做,公共目錄不應該包含在URL中。例如試試/systems/images/1.png而不是public /systems/images/1.png – Edward 2013-04-05 20:48:19