Chrome 39 XML/XSLT呈现空白页面 [英] Chrome 39 XML/XSLT Renders Blank Page

查看:5
本文介绍了Chrome 39 XML/XSLT呈现空白页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2011年的旧代码,一直运行正常。这是在Chrome 39之前。在绞尽脑汁试图诊断后,我确定它在IE、Firefox和Chrome<;=Version 38上运行良好。从Chrome版本39开始,仅显示空白页面。

似乎在处理xsl/xslt或XML方面发生了更改,不允许页面正确呈现。

是否有任何已知的Chrome更改会导致此问题?是否有任何修复或解决办法?

谢谢!

示例:

http://redemption.armory点永恒-wow.com斜杠arena-ladder.xml?ts=2&;b=永恒-WOW%21 http://eternal-wow.com

推荐答案

该链接在火狐中有效,但在Chrome中显示为空白页面。我查看了WebDev工具,注意到Chrome以Firefox的身份从不同的url加载xsl文件,例如.._layout/arena/language.xsl(404),而不是../_layout/language.xsl(Ok)。此外,在Chrome中,我收到错误消息"资源解释为样式表,但使用MIME类型应用程序/XSLT+XML传输:"http://redemption.armory.eternal-wow.com/_layout/arena/ladder.xsl"。
有关此问题,请检查Chrome says: Resource interpreted as Stylesheet but transferred with MIME type application/xml

主要问题似乎是被误解的xsl:importxsl:include语句,这似乎是Chrome/Webkit错误-参见https://code.google.com/p/chromium/issues/detail?id=8441或Google中的"xsl导入相对路径Chrome"。ladder.xsl中的第一个导入:<xsl:import href="../includes.xsl" />(从../_layout/includes.xsl加载)。includes.xsl中的<xsl:import href="language.xsl"/>在Chrome中失败-它被解析为../_layout/arena/language.xsl,而不是../_layout/language.xsl。同样适用于xsl:includes,例如在language.xsl-中。<xsl:include href="nav/menu.xsl" />尝试包含来自../_layout/arena/nav/menu.xsl而不是../_layout/nav/menu.xsl
由于它似乎是一个Chrome Bug,您可以尝试只将XSL文件复制到Chrome正在查找它们的位置,或者尝试调整包含/导入路径,因为Chrome似乎基于主模板解释位置-因为"../includes.xsl"作为Arena目录中ladder.xsl的导入,但includes.xsl中的<xsl:import href="language.xsl"/>不是相对于language.xsl解析的,而是相对于ladder.xsl的。更改为<xsl:import href="../language.xsl"/>可能适用于Chrome(但可能不适用于其他浏览器,所以我不建议这样做)。有两个建议-要么将导入/包含加倍,保留当前的导入/包含并使用相对于ladder.xsl的路径添加每个导入/包含;要么检查是否可以将所有导入和包含移动到ladder.xsl并相应地调整路径。

这篇关于Chrome 39 XML/XSLT呈现空白页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆