有谁知道为什么从这个页面相同的代码http://emacsformacosx.com/不会在本地Tomcat服务器上托管时呈现?
我试图用一些SVG玩,但不能看到,使其在本地工作。 有任何想法吗?
有谁知道为什么从这个页面相同的代码http://emacsformacosx.com/不会在本地Tomcat服务器上托管时呈现?
我试图用一些SVG玩,但不能看到,使其在本地工作。 有任何想法吗?
该网页是XHTML,所以应该用合适的Content-Type头提供服务。 如果页面被当作text / html的,那么Firefox和Chrome(只有两个我已经签入)将无法识别所必需的XML命名空间的SVG工作。
虽然直播页面被送达头
Content-Type: text/xml; charset=UTF-8
这不,严格来说,是正确的。 在我的测试中,用它提供服务
Content-Type: application/xhtml+xml; charset=UTF-8
使其正确呈现,并且是用于XHTML的适当的类型。
请注意,您必须在服务器上检测到的Internet Explorer(和其他浏览器不理解XHTML),并更改内容类型text/html
-如果呈现的application/xhtml+xml
内容类型IE会提示用户要下载的文件; 对于text/xml
,它会显示漂亮的打印的XML文档树(虽然偶尔会感到困惑,并设法通过内容嗅探正确显示HTML)。
编辑:作为codedread说,如果你想为原料SVG文件,您需要使用SVG内容类型,但在这种情况下,文件实际上是XHTML,在一个单独的命名空间内联SVG,所以XHTML类型是正确的。
你可能需要设置你的服务器,以服务为SVG正确的MIME类型:image / SVG + XML
更多资讯: http://www.planetsvg.com/tools/mime.php
作为NickFitz和codedread提到,对于嵌入SVG工作您的页面必须担任application/xhtml+xml
。 有使用Tomcat实现这一目标至少在三个方面:
HTTP_ACCEPT
在HTTP请求中发送报头( 我在博客中的移动设备的上下文中这一方法 )。 另外,分裂您SVG内容到一个单独的文件,那么它不会不管你的网页是什么内容类型。 IE浏览器将不渲染SVG,但它至少会显示该页面的其余部分。 你可以把所有的SVG出来的页面和链接到它的,但仍然有一些浏览器兼容性问题 。
最后,如果你只是想看看静态页面与嵌入SVG关闭您的本地硬盘上没有涉及的服务器,从改变文件扩展名.html
到.xhtml
可能工作。
如果你使用Apache服务器,你可以指示哪些MIME类型来使用这些图片,只是这两行添加到您.htaccess
文件:
AddType image/svg+xml svg svgz
AddEncoding gzip svgz