Chrome 39 XML/XSLT 呈现空白页



我有 2011 年的旧代码,它一直运行良好。直到Chrome 39。在我脑袋里试了一会儿试图诊断后,我确定它在IE,Firefox和Chrome <=版本38中工作正常。从Chrome版本39开始,仅显示一个空白页。

似乎在处理 xsl/xslt(或 xml)时发生了变化,不允许页面正确呈现。

Chrome 是否有任何已知的更改会导致这种情况?任何修复或解决方法?

谢谢!

例:

http://redemption.armory DOT eternal-wow.com SLASH 竞技场梯.xml?ts=2&b=Eternal-WoW%21http://eternal-wow.com

该链接在 Firefox 中有效,但在 Chrome 中会导致空白页。我检查了网络开发工具,注意到Chrome从Firefox的不同网址加载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 说: 资源解释为样式表,但使用 MIME 类型应用程序/xml 传输

主要问题似乎是错误的xsl:importxsl:include语句,这似乎是一个Chrome/Webkit错误 - 例如,请参阅 https://code.google.com/p/chromium/issues/detail?id=8441 或谷歌的"xsl import相对路径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,例如在语言.xsl - 中。 <xsl:include href="nav/menu.xsl" />尝试包含来自../_layout/arena/nav/menu.xsl而不是../_layout/nav/menu.xsl
由于它似乎是一个 Chrome 错误,您可以尝试将 xsl 文件复制到 Chrome 正在寻找它们的位置,或者尝试调整包含/导入路径,因为 Chrome 似乎根据主模板解释这些位置 - 因为"../includes.xsl"正在从竞技场目录中的ladder.xsl导入,但includes.xsl中的<xsl:import href="language.xsl"/>相对于CC_没有解析20 ,但相对于ladder.xsl,更改为 <xsl:import href="../language.xsl"/> 可能适用于 Chrome(但可能不适用于其他浏览器,所以我不建议这样做)。两个建议 - 要么将导入/包含加倍,保留当前的导入/包含并使用相对于ladder.xsl的路径添加每个导入/包含,或者,这将是一个更干净的解决方案,您检查是否可以将所有导入和包含移动到 ladder.xsl 并相应地调整路径。

相关内容

  • 没有找到相关文章

最新更新