【问题标题】:React not rendering in IE compatibility view在 IE 兼容性视图中反应不呈现
【发布时间】:2020-04-06 09:53:48
【问题描述】:

我使用的是来自 create-react-app 而不是在 IE11 中呈现

在 IE 兼容模式下检查 Intranet 站点。所以部署后它使用 IE5 或 IE7 模拟器,这会在控制台中显示空白页面和一些错误。

我尝试了不同的解决方法:

  1. 通过 react-helmet 使用 X-UA-Compatible 标签
  2. 在 IIS 中为 X-UA 兼容设置响应标头
  3. setting X-UA-Compatible header in web.config

这些都不起作用。

我发现这个元标记需要be set as first child of the head。但是使用 react-helmet 是not possible to place a tag at very top

任何人都可以遇到类似的问题吗?

编辑:它在 IE11 中运行良好。这只是IE兼容性问题

【问题讨论】:

    标签: reactjs internet-explorer-11 react-helmet ie-compatibility-mode helmet.js


    【解决方案1】:

    来自official documentation,react 不支持 IE 9 以下的旧浏览器。你说你在兼容模式下运行它,即 IE 5 和 IE 7。React 不支持这两个 IE 版本。

    您可以在 public/index.html<head> 中手动添加此元标记 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 以覆盖兼容性视图。

    此外,您的应用在没有兼容性视图的情况下是否在 IE 11 中运行良好?您也可以关注this answer 使其在 IE 11 上得到支持。

    【讨论】:

    • 是的,你是对的,它在 IE11 中呈现完美。我的意思是从开发工具中,如果我将兼容模式更改为 IE11,那么它就可以完美运行。我尝试使用 react-helmet 放置标题。然后它被添加到头部标签的末尾(不是顶部)。它不起作用。不工作意味着仍然在IE中选择IE5/IE7模拟器
    • 在没有 react-helmet 的情况下手动放置元标记怎么样?如果还是不行,请提供a minimal, reproducible example,以便我们进行测试,更好地理解问题。
    • 应用程序是使用 create-react-app 脚本创建的。我不知道如何手动添加标签,因为在任何地方都有 head 标签可以修改
    • 貌似有一个可以修改的public/index.html :) 这可能是一个很好的解决方案!
    • 可以,只需在public/index.html<head>中添加标签即可。
    【解决方案2】:

    问题可能是 ECMA 6 与 IE 11 的兼容性。您可以将代码转换为 ES5(使用 babel),因为 IE 支持 ES5。

    【讨论】:

    • 我猜这是因为从问题可以理解这不是 IE11 问题,而是 IE 兼容性问题
    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2011-09-14
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多