我有一个简单的 HTML 页面如下:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; cht=UTF-8" />
<title>test title</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<span cl="test">Test</span>
</body>
</html>
和 style.css 如下:
.test{
color:yellow;
}
我怀疑输出是一个的测试,但它是一个黑色的。
如果我使用这个链接:
http://url/style.css
我可以看到 CSS 的内容,所以我相信客户端可以阅读它。
我使用 thttpd 作为嵌入式系统上的 Web 服务器。
screen capture of what IE developer shows:
这表明 html 和 css 都是通过 IE 获得的。
您说您正在嵌入式系统上使用 thttpd。鉴于您的代码很好,我希望发生的事情是您的样式被 IE 忽略,因为您的 Web 服务器没有为它们提供正确的内容类型。
从 MSDN 上的MIME types and stylesheets:
从 IE9 标准模式开始,样式表将被忽略(不应用),除非它们与“text / css”MIME 类型一起交付。
所以,我建议您查看您的 thttpd 配置,看看是否可以添加将“text / css”MIME 类型应用于.css 文件的说明。
更新:我可以从你的截图中看到样式表正在使用“text / html”,这几乎证实了我的诊断。
thttpd 的文档建议你只能在编译时更改它支持的 MIME 类型,所以要解决这个问题,你需要重新编译。
我可以看到最新版本的 thttpd,2.25 b,在其 mime_types.txt 中正确标记为 text / css 的 CSS 文件,所以你可以得到最新版本并使用它。
或者,添加行
css text/css
到您现有版本的 mime_types.txt,如果您已经从源编译,然后重新编译。thttpd Makefile 使用该文本文件将每个文件扩展名的正确 MIME 类型编译为二进制文件。(请注意,文件格式需要在文件扩展名和 MIME 类型之间有一个制表符。)
(鉴于嵌入式系统通常不擅长处理多个连接,您也可以将样式嵌入 HTML 文档标题中的<style>
元素中,这将(a)与您当前的设置一起使用,并且(b)保存第二个请求以获取单独的 CSS 文件。)
您的 HTML 页面或 css 没有任何问题,所以我假设您的浏览器无法获取 css(可能是 URL 错误?)或者它使用的是 css 的缓存版本。(如果使用 IE,请尝试 CTRL + f5)
如果这没有帮助,那么根据您使用的浏览器,我建议您打开开发人员工具并跟踪返回的网络调用和状态代码。E.G for Internet Explorer,点击 F12,切换到网络选项卡并启用“开始捕获”。要更详细地了解幕后情况,Fiddler是一个很好的工具。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(44条)