Вот как реализовать идею, которая была у вас в исходном вопросе.
Проблема этого подхода заключается в том, что время вашего ответа будет включать в себя столько времени, сколько потребуется другому домену, чтобы ответить на ваш запрос изображения. Если этот сайт имеет
проблемы, то ваша страница не будет загружаться до истечения времени ожидания запроса.
<%
img_url = 'http://adomain.com/image.jpg'
res = Net::HTTP.get_response(URI.parse(img_url))
img_url = '[my alternate url]' unless res.code.to_i >= 200 && res.code.to_i < 400 #good codes will be betweem 200 - 399
%>
<%=image_tag img_url%>
Подход jQuery немного сложнее. Я бы предложил что-то вроде следующего:
- создание тега
<img>
с прозрачным разделительным изображением
- в javascript страницы выполните вызов
$.ajax
для удаленного образа
- при успешном обратном вызове замените src
<img>
на URL-адрес удаленных изображений
- в обратном вызове сбоя замените src
<img>
на URL-адрес резервного изображения
К сожалению, сейчас у меня нет времени, чтобы сгенерировать точный код для этого.