2011-08-02 92 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')” 图像标记在图像未加载时触发。