我已經在本地機器上建立了一個虛擬應用程序,它正在運行,但它沒有加載CSS文件。我使用lessCSS來設計我的應用程序,我認爲這裏不加載css的原因在於LESSCSS樣式表使用.less擴展名。如何將* .less添加到IIS 7.0?
那麼爲了讀取* .less文件擴展名該怎麼辦?
我已經在本地機器上建立了一個虛擬應用程序,它正在運行,但它沒有加載CSS文件。我使用lessCSS來設計我的應用程序,我認爲這裏不加載css的原因在於LESSCSS樣式表使用.less擴展名。如何將* .less添加到IIS 7.0?
那麼爲了讀取* .less文件擴展名該怎麼辦?
沒有必要添加處理程序。只需爲.less
添加一個MIME類型(現在稱爲Internet媒體類型),並將MIME類型設置爲text/css
。
Web服務器查看請求的擴展(就像擴展文件一樣)。如果他們知道擴展名,他們提供該文件,並添加一個HTTP頭字段來指示該文件的內容採用哪種格式。例如,當它們提供靜態HTML文件時,它們會添加Content-Type: text/html
標題字段。這樣,瀏覽器就可以理解使用哪個應用程序來處理響應主體。
如果Web服務器不知道請求擴展名,它們將搜索以查看是否已經安裝了另一個知道該擴展名的應用程序。如果有另一個應用程序,那麼他們讓該應用程序提供該文件。
你可以認爲這個例子充分了解發生了什麼:
你去餐廳吃飯,(你是HTTP request
)。你問一個比薩(披薩是延伸)。廚師知道如何爲比薩服務,因此它爲您服務。
現在考慮你再去同一家餐館,並要求Bomyhoor
(假食品)。廚師不知道如何烹飪和服務。他/她要求其他廚師看看廚房裏是否有其他人(廚房是網絡服務器),誰知道如何烹飪?如果有人知道ho要烹飪Boomyhoor
,那麼他/她會爲您服務。
現在,考慮你再去一次,這次要求Graboori
。廚師已經知道(從字典)Graboori
只是比薩的另一個名字。因爲他知道如何服務披薩,他只是服務於此。
將MIME類型添加到Web服務器時,只需將請求擴展名映射到文件類型即可。
接受的答案只是修復了更少的406錯誤。有人可能會面臨404錯誤,說明對這個錯誤可能是固定的可以在這裏找到:https://stackoverflow.com/a/28828628/3936440
必須添加
<staticContent>
<mimeMap fileExtension=".less" mimeType="text/css" />
</staticContent >
到Web.config
樣本:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".less" mimeType="text/css" />
</staticContent >
<rewrite>
<rules>
<rule name="WordPress: http://YourSite.com" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
<system.web>
<authentication mode="None" />
</system.web>
</configuration>
我認爲OP在詢問如何使用自定義HTTP處理程序來完成服務器端的轉換。但是,如果使用less.js客戶端方法,您的答案是正確的。 – Domenic
這對每個用戶來說都是非常重要的。 OP正在尋找一個自動編譯器,所以當你完成編輯.less(並保存它)時,它將它編譯成一個CSS文件並將其放在正確的位置。 Eclipse有一個用於開發的插件,我知道你可以在linux上使用更少的命令來設置apache,但是對於IIS來說,你需要使用本地編譯器,或者爲其提供服務。 – Relic
請注意,您的網絡服務器可能會返回HTTP錯誤代碼406 - 如果您將MIME類型定義爲文本/ css,則不可接受。你應該使用text/less作爲mimetype。 –