我在某些服务器上的html文件中显示.svg图像时遇到问题.这让我感到困惑,因为我认为浏览器决定是否渲染svg图像,但浏览器保持不变.我正在使用以下字符串来显示它们:
<img src='path/to/image.svg' alt='image' />
在一台RHEL6服务器上,它显示在另一台RHEL5服务器上,它不会. httpd的版本分别为2.2.15-9.el6和2.2.3-53.el5.网络浏览器与Google Chrome 12.0.742.122保持一致.服务器之间是否有什么东西可以决定svg图像是否被渲染?
解决方法
应该使用MIME类型image / svg xml来提供SVG映像,因此我建议先检查它.检查所提供的MIME类型的一种方法是使用wget来获取图像.这是wget输出的一个例子.注意它显示MIME类型的位置:
jacob@jacob-laptop:~/tmp$wget http://croczilla.com/bits_and_pieces/svg/samples/butterfly/butterfly.svg --2011-07-25 11:32:04-- http://croczilla.com/bits_and_pieces/svg/samples/butterfly/butterfly.svg Resolving croczilla.com... 77.92.68.237 Connecting to croczilla.com|77.92.68.237|:80... connected. HTTP request sent,awaiting response... 200 OK Length: 31187 (30K) [image/svg+xml] Saving to: `butterfly.svg' 100%[====================================================================>] 31,187 84.5K/s in 0.4s
如果在两种情况下MIME类型都是image / svg xml,那么我会对两个文档的内容进行区分,以查看它们之间是否存在差异.
此外,虽然这不能回答您的问题,但您还应该知道并非所有浏览器都支持使用HTML img标记来呈现SVG.这样做的原因是,通常,img标签使用的安全性低于object或embed标签.你可以在这里阅读更多信息:Reliably detecting <img> tag support for SVG