我在某些服务器上显示html文件中的.svg图像时遇到了问题。这让我很困惑,因为我认为这是由浏览器决定的,无论是否渲染svg图像,但浏览器保持不变。我使用以下字符串来显示它们:
<img src='path/to/image.svg' alt='image' />
在一台RHEL 6服务器上,它会显示,而在另一台RHEL 5服务器上,它不会显示。httpd的版本分别为2.2.15-9.el6和2.2.3-53.el5。Web浏览器与Google Chrome 12.0.742.122保持一致。服务器之间是否存在某些东西,将决定是否呈现svg图像?
错误日志不报告任何内容,访问日志给予.svg文件的状态设置为200和304。
3条答案
按热度按时间i2loujxw1#
SVG图像应该以MIME类型image/svg+xml提供,所以我建议先检查一下。检查所提供的MIME类型的一种方法是使用wget来获取图像。下面是wget的输出示例。注意它显示MIME类型的位置:
如果两种情况下的MIME类型都是image/svg+xml,那么我将比较两个文档的内容,看看它们之间是否有差异。
此外,虽然这并没有回答你的问题,但你也应该知道,并不是所有的浏览器都支持使用HTML img标签来呈现SVG。这是因为,通常情况下,img标签使用的安全性比object或embed标签要低。你可以在这里阅读更多信息:Reliably detecting tag support for SVG
nhhxz33t2#
jbeard4答案是正确的,但我想补充一下:为了解决这个问题,你必须让你的服务器以
image/svg+xml
的形式提供SVG图像。在Apache上,你可以通过在.htaccess
中添加以下两行代码来实现这一点:通过http://kaioa.com/node/45
uwopmtnx3#
在此插入Apache选项
在
<Directory "/LocalServer/cgi-bin">
的行之前