在 RichFaces webapp 中被忽略-6ren"> 在 RichFaces webapp 中被忽略-我在 Glassfish 2.1 上使用 JSF 2.0 和 RichFaces 3.3.3。我创建了一个带有模式面板的 Web 应用程序,它在我的计算机(本地服务器)中运行良好。由于特定 RichF-6ren">
gpt4 book ai didi

jsf-2 - <meta http-equiv ="X-UA-Compatible"content ="IE=8"/> 在 RichFaces webapp 中被忽略

转载 作者:行者123 更新时间:2023-12-04 23:59:29 25 4
gpt4 key购买 nike

我在 Glassfish 2.1 上使用 JSF 2.0 和 RichFaces 3.3.3。我创建了一个带有模式面板的 Web 应用程序,它在我的计算机(本地服务器)中运行良好。由于特定 RichFaces 版本的 IE9 不兼容,我使用的是 X-UA-Compatible: IE=8我的 HTML 头中的元标记:

<meta http-equiv="X-UA-Compatible" content="IE=8" />
当我在本地环境中部署时,模态面板如下所示:
1ok
但是当我在生产服务器中部署时,我遇到了问题。
如果我使用具有兼容性 View 的 IE
comp
(来源: geneanet.org)
,我的模态面板如下所示:
2no-ok
如果我不使用兼容性 View ,我会看到模态面板,但我所有的 ajax 按钮都不起作用。
这是怎么引起的,我该如何解决?

最佳答案

来自 IE 开发人员文档,Defining Document Compatibility :

...

The X-UA-Compatible header is not case sensitive; however, it must appear in the header of the webpage (the HEAD section) before all other elements except for the title element and other meta elements.

...


RichFaces 3.3.3 默认自动包含 <link> 中引用 RichFaces 特定 CSS 样式表的元素非常顶级头部,原 <head>之前模板内容。所以 X-UA-Compatible具有 HTML 风格的标题 <meta> element 在 RichFaces 3.3.3 webapp 中总是无法工作。它在您的本地开发环境中运行良好很可能是因为您已将 localhost 站点添加到浏览器配置中的 IE8 兼容站点列表中。 X-UA-Compatible的存在标题不再重要了。
最好的办法是设置 X-UA-Compatible header 直接放在 HTTP 响应本身上,而不是作为 HTML 元标记。你可以用一个简单的 servlet filter 来做到这一点。映射到 FacesServlet并完成以下工作:
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
((HttpServletResponse) response).setHeader("X-UA-Compatible", "IE=8");
chain.doFilter(request, response);
}

关于jsf-2 - &lt;meta http-equiv ="X-UA-Compatible"content ="IE=8"/> 在 RichFaces webapp 中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com