2011-08-02 153 views
0

我的Rails應用程序包含類似的視圖模板下面檢測HTTP狀態代碼

<%= image_tag 'http://foo.com/images/1' %> 

有時候,如果網址不包含圖像,託管網站會返回一個響應404或302狀態。

在這種情況下,顯示圖像的替代文本。

如何檢測HTTP響應狀態以插入不同的圖像? (如下一張圖片,或默認的「未找到」圖片)?

+0

Rails不加載圖像,它只是創建(如名稱所示)圖像標籤。瀏覽器是實際加載它們的那個。如果你想檢查狀態代碼,你可能需要從rails爲每個圖像發出http請求(不是一個好主意),或者使用javascript在瀏覽器中獲取圖像而不實際顯示它們(稍微好一點的想法,但不能通過很多) – Flambino

+0

那麼我可以使用JavaScript來檢測每個圖像上的返回狀態? 'onError'事件是由圖片加載失敗觸發的嗎? – TinyTimZamboni

+0

嗯。也許。我不知道,我從未想過這件事。我不知道你是否可以處理單個圖像,但也許你可以掛鉤到'document.onerror'(我認爲,它收集頁面上發生的所有錯誤),然後檢查給出錯誤。再次,我在這裏猜測。但這是個不錯的主意 - 試試吧! – Flambino

回答

0

添加 :onError =>「alert('error')」 圖像標記在圖像未加載時觸發。