簡體   English   中英

IE9 + RichFaces渲染問題

[英]IE9 + RichFaces Rendering problem

我有一個在JSF 2.0 + Richfaces 3.3.3上運行的Web應用程序。 在IE9以外的所有瀏覽器上看起來都很棒

在IE9沒有兼容模式(有沒有問題)它看起來像這樣(忽略黑屏文本): 在此輸入圖像描述

注意所有組件是如何構成框架並忽略CSS(未見?)

JSP看起來像這樣(只有相關的東西):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<link rel="stylesheet" href="css/pageStyle.css" type="text/css" >
</head>

<body>
...
</body>

css位於C:\\apache\\tomcat\\webapps\\MyWebApp\\css\\pageStyle.css

有人有任何想法嗎? 謝謝!

更新通過使用network選項卡捕獲數據包,對“開發人員工具”進行了一些研究。 使用Type = text/html而不是text/css發送css文件。 我猜這是根據這個問題的問題。

但我仍然不知道為什么會這樣。 如您所見,文件類型在<link>標記中明確標記為type="text/css

另一個有趣的觀察 - 在Chrome開發者工具中檢查相同的對象,內容類型是text/css所以也許它是一個IE9錯誤。 我糊塗了...

RichFaces 3.x不支持IE9(並且沒有計划引入它),請參閱此主題: http//community.jboss.org/thread/156720

你可以升級到RF 4,

或實現過濾器以強制IE9以兼容模式運行:

public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
    HttpServletResponse resp = (HttpServletResponse) response;
    resp.addHeader("X-UA-Compatible", "IE=EmulateIE8");
    chain.doFilter(request, resp);
}

Richfaces 3.3早於IE9進入測試階段,因此可能存在一些兼容性問題,因為構建可能沒有針對IE9進行測試。

好消息是你正在使用JSF 2,所以沒有理由你不能升級到Richfaces 4 Final,它確實支持IE9。

這就是說你使用的JSF版本似乎也很重要。 我正在使用mojarra,在版本2.0.4中,當我們使用mojarra.ab(f:ajax)重新加載時,我遇到了許多Richfaces組件的問題。 升級到2.1.1似乎已經解決了所有這些問題,現在我在生產中使用Richfaces代碼,對IE9用戶表現良好。

我建議您查看升級路徑,看看它是否可行。

問題是IE9需要css文件的http響應定義了Content-Type頭。 您的http響應標頭應如下所示:

Content-Type: text/css

可能的解決方案:您可以創建一個Servlet來捕獲http請求並使用Content-Type值修飾響應頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM