[英]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.