2011-07-28 97 views
3

1. 我的主機使用IIS 7和IIS不是我的權限來訪問設置。 現在如何web.config或其他我發送一個js/css/aspx來應用Gzip。如何壓縮數據

2.how可以啓用的ETag爲IIS6

如何能夠支持此爲我的網站 這不是gloabal工作(YSlow的)

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
      <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/> 
      <dynamicTypes> 
       <add mimeType="text/*" enabled="true"/> 
       <add mimeType="message/*" enabled="true"/> 
       <add mimeType="application/javascript" enabled="true"/> 
       <add mimeType="*/*" enabled="false"/> 
      </dynamicTypes> 
      <staticTypes> 
       <add mimeType="text/*" enabled="true"/> 
       <add mimeType="message/*" enabled="true"/> 
       <add mimeType="application/javascript" enabled="true"/> 
       <add mimeType="*/*" enabled="false"/> 
      </staticTypes> 
     </httpCompression> 
     <urlCompression doStaticCompression="true" doDynamicCompression="true"/> 

編輯

此代碼。 asax良好的工作但仍然Yslow秀不使用Gzip?

void Application_PreRequestHandlerExecute(object sender,EventArgs e) { HttpApplication app = sender as HttpApplication; string acceptEncoding = app.Request.Headers [「Accept-Encoding」]; Stream prevUncompressedStream = app.Response.Filter;

if (!(app.Context.CurrentHandler is Page || 
     app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") || 
     app.Request["HTTP_X_MICROSOFTAJAX"] != null) 
     return; 

    if (acceptEncoding.Contains("gzip")) 
     return; 

    acceptEncoding = acceptEncoding.ToLower(); 

    if (acceptEncoding.Contains("deflate") || acceptEncoding == "*") 
    { 
     // gzip 
     app.Response.Filter = new GZipStream(prevUncompressedStream, 
      CompressionMode.Compress); 
     app.Response.AppendHeader("Content-Encoding", "gzip"); 


    } 
    else if (acceptEncoding == null || acceptEncoding.Length == 0) 
    { 
     // defalte 
     app.Response.Filter = new DeflateStream(prevUncompressedStream, 
      CompressionMode.Compress); 
     app.Response.AppendHeader("Content-Encoding", "deflate"); 

    } 
} 

Article Link

回答

1

我相信,在代碼執行壓縮是錯誤的做法;我瞭解你的情況,我相信這很困難,但我會考慮轉移到另一個主機。

此代碼在gloabal.asax中做得好但仍然Yslow顯示不使用Gzip?

您的意思是說,它在您本地測試時起作用,但不在部署到主機時起作用?我已經看到一些代理(例如企業網關)從線路中刪除了「accept-encoding gzip」,所以這可能是需要考慮的事情。