1

我……我完全被难住了。这对我来说完全没有意义。

现在,我是 HTML5、CSS 和 Javascript 的新手,但我觉得我已经使用 Node.js 制作了一个不错的(未完成的)网站设计和一个不错的、简单的(未完成的)服务器程序。但问题是……它不能在 IE9、Opera 或 Safari 5.0.6 或许多其他旧版本的浏览器中呈现;相反,它只是尝试将网站下载为没有扩展名的文件。然而,它在 Chrome、Firefox 和 Safari 5.1.7 中运行。(我没有测试过其他浏览器。)

我什至不知道从哪里开始进行故障排除,我希望这里有人可以帮助我。
希望它与我的服务器配置或代码以及我的错误有关。

来源 -
服务器:http://pastebin.com/vzGnWfgr
HTML: http: //pastebin.com/CvPBhmPa
CSS(如有必要): http: //pastebin.com/WSAKxqxD

我现在也有这个网站在我的服务器上:http: //test.kdude63.com/

另外,如果有什么不同,我正在我的服务器上运行 Ubuntu Server 12.04 LTS。

4

2 回答 2

1

您的 HTTP 响应中的内容类型(MIME 类型)未定义,当我运行 wireshark 跟踪并查看服务器的 200 响应时,我可以看到。如果我去http://test.kdude63.com/index.html,Opera 工作正常,因为它以前没有,并且内容类型在响应中指定。这向我表明,对您的主索引页面的处理存在问题。

默认情况下,Chrome 和 firefox 似乎将这些未定义的数据作为 text/html 处理,这就是它们显示页面没有问题的原因。

另外,我看到您的 case 语句有一个不允许的布尔表达式,并且会导致任何带有 .htm 扩展名的页面出现与此相同的问题。改变这个:

case '.html' || '.htm':
            contentType = 'text/html';
            break;

对此:

case '.html':
case '.htm':
            contentType = 'text/html';
            break;
于 2013-01-23T02:01:27.437 回答
0

在您的网站(http://test.kdude63.com/)中,页面的响应标题有Content-Type: undefined.

当 Content-Type 是未知的 MIME 类型时,许多浏览器只是下载页面。检查您的 app.js 或框架的标头设置。

于 2013-01-23T01:55:17.073 回答