2011-09-06 4 views
39

ローカルマシン上に仮想アプリケーションをセットアップしていて、実行中ですがCSSファイルをロードしていません。私のアプリケーションをスタイリングするためにlessCSSを使用しています。ここでCSSをロードしない理由は、LESSCSSスタイルシートが.less拡張子を使用しているからです。* .lessをIIS 7.0に追加するには?

* .lessファイル拡張子を読み込むにはどうすればよいですか?

答えて

73

ハンドラを追加する必要はありません。 .lessのMIMEタイプ(現在はインターネットメディアタイプと呼ばれる)を追加し、MIMEタイプをtext/cssに設定してください。

Webサーバーは、ファイルの拡張子のように要求の拡張子を表示します。拡張子がわかっている場合は、ファイルを提供し、ファイルの内容がどの形式であるかを示すHTTPヘッダーフィールドを追加します。たとえば、静的なHTMLファイルを提供する場合は、Content-Type: text/htmlヘッダーフィールドが追加されます。このようにして、ブラウザは応答の本体を処理するためにどのアプリケーションを使用するかを理解することができます。

Webサーバーが要求拡張を認識しない場合、Webサーバーは拡張機能を認識している別のアプリケーションが既にインストールされているかどうかを検索します。別のアプリケーションがある場合、それらのアプリケーションはファイルを提供します。

あなたは完全に何が起こるかを理解するために、この例を考えることができます:

あなたは(あなたがHTTP requestある)、レストランに行きます。あなたはピザを求めます(ピザは延長です)。シェフはピザを提供する方法を知っているので、あなたに仕えます。

もう一度同じレストランに行って、Bomyhoor(偽の食品)を求めているとします。シェフはそれをどのように料理して提供するのか知らない。彼/彼女は他の料理人に、すでに料理人を知っているキッチンに他の誰かがいるかどうかを尋ねます(キッチンはウェブサーバーです)。誰かがホーを知ってBoomyhoorを料理しているなら、彼/彼女はあなたに奉仕します。

今度は別の時間に行って、今度はGrabooriを求めてください。シェフは既にGrabooriがピザの別名であることを辞書から知っています。彼はピザの仕入れ方法を知っているので、単にそれを提供するだけです。

WebサーバーにMIMEタイプを追加する場合は、要求拡張子をファイルタイプにマップするだけです。

+6

私は、OPがサーバ側で変換を行うためにカスタムHTTPハンドラを使用することについて質問していたと思います。しかし、クライアント側のless.jsメソッドを使用している場合、あなたの答えは正しいです。 – Domenic

+1

これは、すべてのシングルユーザーのためにオンザフライで行うことが非常に重いです。 OPは自動コンパイラを探していたので、.lessを編集したら(そして保存すると)、それをCSSファイルにコンパイルし、正しい場所に配置します。 Eclipseには開発のためのプラグインがありますが、Linuxのボックスでコマンドを少なくしてApacheの設定を行うことができますが、IISの場合はローカルコンパイラを使用する必要があるようですが、またはサービスを専用にすることができます。 – Relic

+6

あなたのウェブサーバはHTTPエラーコード406を返すかもしれないことに注意してください。あなたがMIMEタイプをtext/cssとして定義していれば受け入れられません。あなたはmimetypeとしてtext/lessを使うべきです。 –

0

許容される回答では、406未満のエラーが修正されました。あなたのWeb.configファイルに

サンプルを

<staticContent> 
    <mimeMap fileExtension=".less" mimeType="text/css" /> 
</staticContent > 

を追加する必要がありますhttps://stackoverflow.com/a/28828628/3936440

0

:一つは、このエラーが修正されるかもしれない方法の説明は、ここで見つけることができ、404エラーに直面するかもしれない

<?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> 
関連する問題