簡體   English   中英

Ruby on Rails:在html.erb文件中以html顯示圖片

[英]Ruby on Rails: Show picture in html in html.erb file

我在Ruby on Rails網站上需要一個可拖動的圖片,並且除圖片沒有顯示之外,其他所有東西都工作正常。

這是圖片的代碼及其屬性:

<img id="drag1" src="/images/img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

如果我這樣寫,圖片就會顯示出來:

<%= image_tag("img_logo.gif") %>

我的問題:我需要在上方代碼中插入什么,以便我的圖片(img_logo.gif)出現?

圖片本身位於:/app/assets/images/img_logo.gif

編寫此代碼的文件是html.erb文件。

我還沒有安裝回形針或imagemagick之類的寶石。

編輯:感謝Meagar和Vic,這將起作用:

可以這樣:

<%= image_tag('img_logo.gif', draggable: "true", id: "drag1") %>

或這個:

<img id="drag1" src="<%= asset_path('img_logo.gif') %>" draggable="true" ondragstart="drag(event)" width="336" height="69">

如果<img id="drag1" src="/images/img_logo.gif"工作正常,則該圖像不在您的資產管道中,而在public/images

如果圖像在資產的管道,在app/assets/images/img_logo.gif ,那么它的正確的URL將被/assets/img_logo.gif

您擁有的代碼image_tag("img_logo.gif") 是正確的 ,因為它將輸出正確的URL /assets/img_logo.gif ,假設圖像位於您所說的位置,並且您沒有更改任何有關資產管道。 您可以使用/images/img_logo.gif成功請求圖像的事實告訴我事實並非如此,並且您還沒有准確描述您的情況。


關於您的評論:

感謝您的回答:當我在其中輸入以下內容時,它會起作用: <img id="drag1" src="/assets/img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

不要那樣做

我認為您向后傳達了正在發生的事情。 我了解到<img src="/images/img_logo.gif"正在工作 ,並且image_tag失敗了。 現在,我看到image_tag一直在工作,但是您試圖弄清楚如何為輸出的<img>標簽提供額外的屬性( id="drag1" draggable=true等)。

您不能像這樣硬編碼資產路徑。 它可以在開發中使用,但是資產URL 在生產中有所不同 ,並且您的網站將停止工作。

為了實現您的目標,可以將屬性傳遞給image_tag幫助器,也可以在HTML標簽中使用asset_path

要么...

<%= image_tag('img_logo.gif', draggable: "true", id: "drag1") %>

或這個...

<img id="drag1" src="<%= asset_path('img_logo.gif') %>" draggable="true" ondragstart="drag(event)" width="336" height="69">

但是不要使用這個

<img id="drag1" src="/assets/img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

使用<%= image_tag("img_logo.gif") %>並顯示圖像,右鍵單擊您網站上的圖像,然后單擊“檢查元素”。 您應該看到src與'/images/img_logo.gif'不同。 它應該有些亂碼。

如果是這樣,原因是因為Rails如何處理其資產。 請查看此有關指紋的導軌指南,以詳細了解實施此方法的原理。

如果不是,請共享它。

最后,生產站點無法訪問app/assets文件夾。 它只能訪問的文件和子目錄public文件夾。 您可以嘗試將gif文件放在/public/images/img_logo.gif ,該文件應與您的第一個代碼一起出現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM