2015-10-20 101 views
0

我在使用carrierwave上傳圖片以顯示在我正在處理的博客中時遇到問題。carreirwave背景圖片

這裏的視圖代碼:

<div class="entry-header"> 
    <div class="entry-image" style="background: image-url(<%= image_tag @blog.image_url.to_s %>)"> </div> 
    <h1 class="entry-title"><%= @blog.title %></h1> 
</div> 

目前它顯示)">在圖像和標題應該是。我可以通過刪除圖像標記中的=使其消失,但這也不能解決問題。

這裏的博客模式:

class Blog < ActiveRecord::Base 
validates :title, presence: true, length: { minimum: 5 } 
validates :body, presence: true 
mount_uploader :image, BlogImageUploader 
end 

而且托特他一般carrierwave產生的上傳,但我可以張貼太多,如果它有助於我還沒有做出任何更改。有人有主意嗎?

按照要求,呈現的HTML:

<div class="entry-header"> 
    <div class="entry-image" style="background: <img src=" uploads="" blog="" image="" 980190964="" gcentral.jpg"="" alt="Gcentral">"&gt; </div> 
    <h1 class="entry-title">Grand central test</h1> 
</div> 
+0

你能發佈頁面的呈現HTML輸出的所有內容嗎?

...' to the closing '
'? –

+0

只是貼在上面。我並不是非常熟悉這裏應該是什麼,特別是背景圖像。它似乎至少獲得了圖像名稱和博客ID。 – Jeastburn

回答

1

啊,我看現在發生了什麼事情。當您使用<%= image_tag(...) %>時,Rails會生成一個<img src="..." alt="..." foo="..." bar="..." />標籤,用於在頁面中顯示常規圖像。你會希望是隻輸出圖像的URL,而不是與

style="background: url(<%= @blog.image_url %>)" 

像你想這將打印出類似這樣url(http://foo/bar/baz.jpg)。請注意,我還將image-url更改爲url,因爲image-url是您可以在/ app/assets/stylesheets文件下使用的東西,但在樣式屬性中不可用。如果您好奇,請查看sprockets瞭解更多信息。

你可能還想在那裏使用一些消毒,因爲一個狡猾的黑客可以上傳一個像"><script>alert('hacked!')</script>這樣的名字的圖像來在你的頁面上執行腳本。

+1

你在10分鐘內釘了我一直想弄明白的事情!謝謝!是的,我需要通過並確實進行一些衛生處理。幸運的是,有一個非常嚴格的權限系統,只允許管理員生成新的內容。 – Jeastburn