display SVG challenge

Here's a challenge to all you good rails programmers: how does one
display SVG images in Rails ? Now I realize many of you ignore SVG
since it "isn't supported everywhere" but that is rapidly changing (it
is supported in Firefox since 1.5, it's now in the Safari overnight
builds, and in IE under the SVG plugin - which is usually shipped but
not activated with the Adobe plugins.

Since SVG can be displayed in ordinary HTML (using <embed type=image/
svg+xml in Firefox), I can only think of 2 reasons that it is not
recognized under Rails:
1) maybe Webrick or Mongrel doesn't recognize it ?
2) somewhere Rails doesn't recognize the mime type - I've tried
changing mime in 2 locations:
a) in the environment.rb file under myproject/config
adding Mime::Type.register "image/svg+xml" (also tried "application/

b) in httputils.rb under /usr/lib/ruby/1.8/webrick/
adding "svg" => "image/svg+xml"

But no matter what I try the browser recognizes it is a svg file but
wants to just save it (indicative of a mime problem).

Can anyone solve this problem ?

Are you embedding the SVG image in HTML or serving it directly?

well for icons - they are static svg files located in the /public/
images folder, but graphs will be generated dynamically based on data.

Mongrel seems to work with embedded SVG, IF you serve the page as .xhtml which maps in Mongrel’s mimetypes.yml to application/xhtml+xml.

try this little chunk stolen from Sam Ruby’s (
) site:

 xmlns="[http://www.w3.org/2000/svg](http://www.w3.org/2000/svg)" xmlns:l=
"[http://www.w3.org/1999/xlink](http://www.w3.org/1999/xlink)" viewBox="0 0 100 102">
radialGradient id="jsongrad" cx="65"
cy="90" r="100" gradientUnits=
"userSpaceOnUse"><stop stop-color="#EEF"/><
stop offset="1"/></radialGradient>

  <path d="M61,2 A49,49 0 0,0 39,99 C9,79 10,24 45,25 C72,24 65,75 50,75 C93,79 91,21 62,2"
id="jsonswirl" fill="url(#jsongrad)"/>

<use l:href="#jsonswirl" transform=
"translate(50, 50) rotate(180) translate(-50, -50)"/>
  <g transform=
"scale(2, 2) translate(25, 25)" fill="none">
 stroke="#66899a" rx="3" ry=
    <ellipse stroke="#e1d85d"
rx="3" ry="22" transform=
    <ellipse stroke="#80a3cf"
rx="3" ry="22" transform

    <circle fill=
"#80a3cf" r="6.5" stroke="#FFF"


thanks for info - and perhaps if .svg is added to the yml mapping to
application/xhtml+xml it may work,
I'll also try this in webrick (I thought I did but will double

Getting closer I think - I applied the ".svg" => application/xhtml
+xml mapping to webrick httputils.rb and now I get empty scrollbars
when trying to display a SVG icon from the /public/images folder. I
played around with some sizes - but no luck. Any ideas ?