我正在尝试运行一个简单的Lift示例,我遇到了一个奇怪的问题.我现在用的是Sonatype的样品清单项目在这里.我略微修改了HTML,但它最初也没有工作.我遇到的问题是,当我运行本地jetty服务器并尝试访问http:// localhost:8080时,它在Firefox 3.6.10而不是HTML中显示为XML.注意,它在IE8中显示正常,但IE8中的Content-Type是"text/html".我认为Firefox出于某种原因不喜欢Content-Type"application/xhtml + xml".Firefox中的消息说:
此XML文件似乎没有与之关联的任何样式信息.文档树如下所示.
以下是Firebug的响应标头:
Expires Thu, 16 Sep 2010 03:55:04 UTC
Content-Length 558
Cache-Control no-cache; private; no-store
Content-Type application/xhtml+xml; charset=utf-8
Pragma no-cache
Date Thu, 16 Sep 2010 03:55:04 UTC
X-Lift-Version 2.0-scala280-SNAPSHOT
Server Jetty(6.1.22)
Run Code Online (Sandbox Code Playgroud)
..和实际的回应:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Lift Test</title>
</head>
<body>
<h2>Welcome to your project!</h2>
<p>
<span>Welcome to toto01 at Wed Sep 15 20:55:04 PDT 2010</span>
</p>
<script type="text/javascript" src="/ajax_request/liftAjax.js"></script>
<script type="text/javascript">
// <![CDATA[
var lift_page = "F586508075515C1K";
// ]]>
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
什么是错的任何想法?如果出现问题,如何更改适用于Firefox的Lift内容类型?
好吧,看起来这个问题与没有xmlns属性的元素有关.将XHTML更改为下面后,它的内容类型为"application/xhtml + xml",效果很好:
<html xmlns="http://www.w3.org/1999/xhtml">
Run Code Online (Sandbox Code Playgroud)