2010-02-20 33 views
3

在一个rails项目中,我使用image_tag来生成我的图像html元素。Rails image_tag不关闭图像标记

<%= image_tag("test.jpg", :alt => "test image") %> 

正在产生

<img src="test.jpg" alt="test image"> 

这是贯穿我的整个Rails项目发生。

是否有一个设置的地方,其他人设置导致此? 我怎样才能让rails总是关闭图片标签?

+0

我搜索了Google一段时间,仍然无法找到答案。 – 2010-02-20 20:51:36

+1

您使用的是哪个Rails版本。我的Rails 2.3.2,MacOS关闭它。 – daustin777 2010-02-20 21:03:13

+2

从技术上讲,HTML中的'img'标签不需要关闭。它们仅在XHTML中是必需的。 – 2010-02-20 21:10:14

回答

6

image_tag以ActionView::Helpers::TagHelper.tag的形式实现,它采用可选的第三个参数来表示是否关闭标签(用于符合XHTML)。默认情况下,它是关闭的,但某些设置为true。不知道在哪里。你应该可以说

tag(:img, { :src => "test.jpg" }, false) 

强制它。


注意使用:img代替"img":img是一个symbol,这基本上是一个只能创建一次的字符串。另一方面,新字符串"img"会在您每次拨打tag时被创建,因此会消耗大量内存。

+5

Rails 3使用了很多新的HTML5标准,而在HTML5中,非关闭是有效的。 – 2011-07-24 10:34:35