Ubuntu系统Firefox 96无法渲染IMG/OBJECT标签内SVG文件问题求助
问题解决方案
1. 补全SVG的XML命名空间声明
Firefox 对SVG的命名空间要求比其他浏览器严格,你当前的SVG代码缺少必填的命名空间属性,在<svg>标签添加xmlns="http://www.w3.org/2000/svg"即可,修改后的SVG代码如下:
<svg xmlns="http://www.w3.org/2000/svg" height="210" width="500"> <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:nonzero;"/> </svg>
这是该类问题最常见的诱因:其他浏览器会自动补全缺失的命名空间,Firefox不会,就会把SVG识别为普通文本而非图像,导致直接输出源码或者只显示替代文本。
2. 检查访问方式与文件类型
- 如果是本地直接用
file://协议打开HTML文件:右键查看star.svg的文件属性,确认系统识别的文件类型为SVG图像而非纯文本。 - 如果是通过HTTP服务访问:确认服务端返回的SVG文件响应头
Content-Type为image/svg+xml,Web容器需要配置对应MIME类型映射才能正确识别SVG文件。
3. 检查文件权限
确认Ubuntu系统下star.svg的读权限对Firefox进程开放,可执行命令chmod 644 star.svg修复权限异常问题。
内容的提问来源于stack exchange,提问作者Jeff Higgins
相关产品推荐
相关产品推荐

