我試圖實現圖像panner我發現here Chrome根據請求的文件的擴展名呈現不同的文檔。我創建了一個測試用例,它在而不是命名爲測試的文件時起作用。 XHTML鉻渲染js根據文件的擴展名渲染[包括testcase]
您可以從here
下載測試情況下不會有人知道爲什麼或如何解決呢?我希望我的文件是.xhtml 在IE和FF中工作正常。
代碼: 的test.html/test.xhtml(改名字一看就知道有一個,但不與其他作品)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<style type="text/css">
/*Default CSS for pan containers*/
.pancontainer {
position: relative; /*keep this intact*/
overflow: hidden; /*keep this intact*/
width: 300px;
height: 300px;
border: 1px solid black;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.dynamicdrive.com/dynamicindex4/imagepanner.js"></script>
</head>
<body>
<div class="pancontainer" data-orient="center" data-canzoom="yes" style="width: 350px; height: 200px; float: left; position: relative; overflow-x: hidden; overflow-y: hidden; cursor: move; "><img src="./test_files/image.jpg" style="position: absolute; width: 700px; height: 525px; left: -175px; top: -163px; display: block;" />
</div>
</body>
</html>
更新: 顯然,由於意見是tomcat的被髮送應用程序/ xhtml + xml的內容類型。
HTTP_TRANSACTION_READ_RESPONSE_HEADERS
--> HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: JSF/1.2
Pragma: no-cache
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: must-revalidate
Expires: Mon, 8 Aug 2006 10:00:00 GMT
Content-Type: application/xhtml+xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 09 Jun 2010 07:39:30 GMT
我添加了一個MIME類型的web.xml
:
<mime-mapping>
<extension>xhtml</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
但仍然無法正常工作。我相信這FacesServlet
正在讀取文件擴展名和發送內容類型,它將覆蓋web.xml
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
我試圖修改web.xml配置改變.xhtml爲.html配置,但面臨的Servlet將文件作爲application/xhtml + xml提供服務我想我可以在Web應用程序中添加一個過濾器,將Content-Type修改爲text/html,但這有點冒險。
爲什麼JSF與Facelets的不提供文件服務爲html?或者如何去做?
更新發現如何爲別人服務的text/html從JSF。您需要
<f:view contentType="text/html"/>
<html>
後和前<head>
現在它按預期工作中鉻中。
使用帶有text/html的XHTML文檔類型沒有任何好處,它只會強制瀏覽器進入怪癖模式。 爲了服務XHTML,並將其解析爲XML,您必須**將其作爲「application/xhtml + xml」提供。爲什麼不使用HTML5文檔類型?這是更寬容,併兼容後退和前進.. – 2010-06-08 15:49:43
順便說一句,你打開本地或通過網絡服務器?如果在本地,則Chrome可能會嘗試根據擴展名猜測內容類型。 – 2010-06-08 15:51:20
@Sean在本地和通過網絡服務器(Tomcat)都有同樣的問題。 – pakore 2010-06-08 16:00:32