2011-12-05 19 views
6

httpCompressionで再生するIISは動的コンテンツとしてMVC内の静的ファイルを理解することを再確認しました。したがって、 "静的コンテンツ圧縮を有効にします。"IISは動的コンテンツとしてMVC内の静的ファイルを理解します

動的コンテンツを有効に圧縮 『ファイルが圧縮されている:「私はチェックを入れた場合、その後

GET /MVCX/Content/Site.css HTTP/1.1 
Host: localhost 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 
Accept: text/css,*/*; 
Referer: http://localhost/mvcx/ 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

HTTP/1.1 200 OK 
Content-Type: text/css 
Last-Modified: Mon, 05 Dec 2011 12:42:37 GMT 
Accept-Ranges: bytes 
ETag: "c79895e4bb3cc1:0" 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
Date: Mon, 05 Dec 2011 12:44:43 GMT 
Content-Length: 1005 

しかし、IISは圧縮せずに.css.jsファイルを返します』 動的なコンテンツの圧縮を有効にします

GET /MVCX/Content/Site.css HTTP/1.1 
Host: localhost 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 
Accept: text/css,*/*; 
Referer: http://localhost/mvcx/ 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

HTTP/1.1 200 OK 
Content-Type: text/css 
Content-Encoding: gzip 
Last-Modified: Mon, 05 Dec 2011 12:42:37 GMT 
Accept-Ranges: bytes 
ETag: "c79895e4bb3cc1:0" 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
Date: Mon, 05 Dec 2011 12:48:36 GMT 
Content-Length: 522 

私は~/Content~/Scriptsへのルートを無視しようとする場合であっても、これらのファイルはまだ動的なコンテンツとして理解されています

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("{Content}/{*pathInfo}"); 
     routes.IgnoreRoute("{Scripts}/{*pathInfo}"); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
    } 

私はこれはおそらくのために必要とされるため、web.configファイルのラインだと思いますASP.NETパイプラインを通じてすべての要求を強制します。

<modules runAllManagedModulesForAllRequests="true" /> 

更新:この設定をfalseに設定しようとしましたが、同じことが起こりました。

避ける方法はありますか?私は私の動的コンテンツの圧縮を望んでいませんが、私は静的コンテンツのためにそれをしたいです。

または、ファイルを別の場所に置く唯一の方法ですか?

乾杯。

+0

私の答え(とリックシュトラールのポスト)に別のマッパーを追加しますが、まったくあなたを助けますか?あなたがこの塊を過ぎたことがあるかどうか不思議です。 –

答えて

0

IISマネージャから、フォルダ単位で動的圧縮を有効にすることができます。 Connectionsペインでフォルダ名を最初にクリックし、中央のペインのCompressionアイコンをダブルクリックし、Enable dynamic compressionを選択します。

それとも、ここでは別の、より強引な方法です:

編集C:\ Windowsの\ system32 \ inetsrv \ config \にapplicationHost.configを(IISの設定ファイル、最初のコピーを作成しますが)。 httpCompressionセクションで

は、 『* /テキスト「=」 /』とMIMEタイプ= MIMEタイプで行を削除、およびMIMEタイプ= 『テキスト/ cssの』(JSのためのエントリがすでにある)に置き換えます。

IISを再起動した後、ダイナミック圧縮はaspx出力(text/html)ではなく、CSS & JSファイルにのみ適用する必要があります。

+0

私はMVCを使用しているので、フォルダはありません。私はメインのWeb.configに設定しようとしましたが、うまくいかなかったのです。 – vtortola

+0

デフォルトでは、web.configでurlCompressionタグを設定することはできません。 IIS設定として、applicationHost.configに存在します。 configを編集して、正しいパスを設定できるはずです。 applicationHost.configでmimeTypeの変更を試しましたか? – RickNZ

0
<modules runAllManagedModulesForAllRequests="true" /> 

は、IIS 7.5 SP1またはIIS7 SP1ではこれ以上必要ありません。無限のURLへのリクエストがasp.netパイプラインを通過するように、MVCに必要でした。

IIS7 SP1およびIIS7.5 SP1では、無制限URLのサポートが新しくなりました。 IIS7では、要求してインストールする必要があるパッチとして利用できます。 、IISの設定では http://support.microsoft.com/kb/980368

「マッピングマネージャ」をチェックし、「パス」欄: あなたは、あなたの質問に完全な答えをここでそれを見つけるでしょう。おそらく、これらのファイルのマッピング設定があります。 *パスもStaticFileHandlerでチェックしてください。

web.configでハンドラを削除しましたか?たぶん声明を追加することによって?

1

は、私はあなたがリックはすでにここにあなたの質問に答えた見つけることだと思う:

http://www.west-wind.com/weblog/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x

私はあなたが正直にその問題を抱えている理由はわかりません。静的圧縮は、MVC3で私のために自由に機能しています。特別な変更は必要ありません。

RickNZさんのように、MIMEタイプがapplicationhost.configで正しく説明されていることを確認してください。これは役立つはず

0

(IIS7 MVC3):

があなたのweb.configファイル

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="false"> 
... 
    </modules> 

<handlers> 
     <remove name="UrlRoutingHandler" />  
     <clear /> 
     <add name="svc-ISAPI-4.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> 
     <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" /> 
     <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" modules="ManagedPipelineHandler" resourceType="Unspecified" requireAccess="Read" preCondition="integratedMode" /> 
    <add name="StaticFileHandler-html" path="*.html" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read"/> 
...  
     <add name="StaticFileHandler-css" path="*.css" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
     <add name="StaticFileHandler-js" path="*.js" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
     <add name="wildcard" path="*" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" /> 
     <add name="PageHandlerFactory-Folders" path="*" verb="*" type="System.Web.UI.PageHandlerFactory" modules="ManagedPipelineHandler" resourceType="Unspecified" requireAccess="Read" allowPathInfo="false" preCondition="integratedMode" /> 
     <add name="StaticFileHandler" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
    </handlers> 
関連する問題