簡體   English   中英

為什么樣式表不起作用?

[英]Why stylesheet doesn't work?

我有一個簡單的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; charset=UTF-8" />
<title>test title</title>
 <link href="style.css" rel="stylesheet" type="text/css" />

 </head>
 <body>
     <span class="test">Test</span>
 </body>
 </html>

而style.css如下:

.test{
 color:yellow;
}

我懷疑輸出是黃色測試,但它是黑色測試。

如果我使用此鏈接:

http://url/style.css

我可以看到CSS的內容,所以我相信客戶端可以讀取它。

我在嵌入式系統上使用thttpd作為Web服務器。

IE開發人員顯示的屏幕截圖: 沒有應用樣式

這表明html和css都是通過IE獲得的。

風格取自服務器

你說你在嵌入式系統上使用thttpd。 鑒於您的代碼很好,我預計發生的事情是您的樣式被IE忽略,因為您的Web服務器沒有使用正確的內容類型為它們提供服務。

從MSDN上的MIME類型和樣式表

從IE9標准模式開始,樣式表將被忽略(未應用),除非它們以“text / css”MIME類型提供。

因此,我建議查看您的thttpd配置,看看是否可以添加指令以將“text / css”MIME類型應用於.css文件。

更新:我可以從你的截圖中看到樣式表正在提供“text / html”,這幾乎證實了我的診斷。 CSS文件應該作為“text / css”提供。

thttpd的文檔建議您只能在編譯時更改它支持的MIME類型,因此要解決問題,您需要重新編譯。

我可以看到最新版本的thttpd,2.25b,其mime_types.txt中的CSS文件正確標記為text / css,因此您可以獲取最新版本並使用它。

或者,添加該行

css text/css

如果您從源代碼編譯,則重新編譯現有版本的mime_types.txt。 thttpd Makefile使用該文本文件將每個文件擴展名的正確MIME類型編譯到二進制文件中。 (請注意,文件格式需要文件擴展名和MIME類型之間的制表符。)

(鑒於嵌入式系統通常不能很好地處理多個連接,您也可以將您的樣式嵌入HTML文檔標題中的<style>元素中,這將(a)與您當前的設置一起使用,並且( b)保存第二個請求獲取單獨的CSS文件。)

您的HTML頁面或CSS沒有任何問題,所以我認為您的瀏覽器無法獲取css(可能是URL錯誤?)或者它正在使用css的緩存版本。 (如果使用IE,則嘗試CTRL + f5)

如果這沒有幫助,那么根據您使用的瀏覽器,我建議您打開開發人員工具並跟蹤返回的網絡呼叫和狀態代碼。 用於Internet Explorer的EG,按F12,切換到網絡選項卡並啟用“開始捕獲”。 為了更詳細地了解幕后發生的事情,那么Fiddler就是一個很棒的工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM