靜態類型 <staticTypes>
概觀
元素 <staticTypes>
的 <httpCompression>
元素包含專案集合 <add>
,這些元素會將唯一的MIME類型新增至IIS 7將靜態壓縮的類型清單。
注意
與將特定擴展名定義為「靜態內容」的 IIS 6.0 HcFileExtensions Metabase 屬性不同,IIS 7 會使用 <staticTypes>
元素來指定哪些 MIME 類型 IIS 7 會以靜態方式壓縮,而且它會使用 元素中的 <handlers>
對應來指定哪些擴展名參照靜態或動態內容。
相容性
版本 | 備註 |
---|---|
IIS 10.0 | 未 <staticTypes> 在 IIS 10.0 中修改專案。 |
IIS 8.5 | 專案 <staticTypes> 未在 IIS 8.5 中修改。 |
IIS 8.0 | 專案 <staticTypes> 未在 IIS 8.0 中修改。 |
IIS 7.5 | 專案 <staticTypes> 未在 IIS 7.5 中修改。 |
IIS 7.0 | 元素 <staticTypes> 的 <httpCompression> 元素是在 IIS 7.0 中引進的。 |
IIS 6.0 | 元素 <staticTypes> 有點類似於 IIS 6.0 HcFileExtensions Metabase 屬性。 |
設定
HTTP 壓縮通常會在 IIS 7 和更新版本的預設安裝上使用。 不過,預設只會安裝靜態壓縮。 若要安裝靜態或動態壓縮,請使用下列步驟。
Windows Server 2012 或 Windows Server 2012 R2
- 在工作列上,按一下 [伺服器管理員] 。
- 在 伺服器管理員 中,按兩下 [管理] 功能表,然後按下 [新增角色和功能]。
- 在 [ 新增角色和功能 精靈] 中,按 [ 下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [下一步]。
- 在 [伺服器角色] 頁面上,依序展開 [網頁伺服器]、[網頁伺服器] 和 [效能],然後選取 [靜態內容壓縮] 和/或 [動態內容壓縮]。 按一下 [下一步] 。
. - 在 [選取功能] 頁面上,按一下 [下一步] 。
- 在 [確認安裝選項] 頁面上,按一下 [安裝] 。
- 在 [結果] 頁面上,按一下 [關閉] 。
Windows 8 或 Windows 8.1
- 在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按兩下 [開始] 按鈕,然後按兩下 [控制台]。
- 在 控制台 中,按兩下 [程式和功能],然後按兩下 [開啟或關閉 Windows 功能]。
- 依序展開 [網際網路資訊服務]、[萬維網服務]、[效能功能],然後選取 [動態內容壓縮] 和/或 [靜態內容壓縮]。
- 按一下 [確定]。
- 按一下 [關閉] 。
Windows Server 2008 或 Windows Server 2008 R2
- 在任務欄上,按兩下 [開始],指向 [系統管理工具],然後按兩下 [伺服器管理員]。
- 在 [伺服器管理員 階層] 窗格中,展開 [角色],然後按兩下 [網頁伺服器] [IIS]。
- 在 [Web 伺服器 (IIS)] 窗格中,捲動至 [角色服務] 區段,然後按兩下 [新增角色服務]。
- 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,如果您想要安裝動態壓縮和靜態內容壓縮,如果您想要安裝靜態壓縮,請選取 [動態內容壓縮],然後按 [下一步]。
- 在 [確認安裝選項] 頁面上,按一下 [安裝] 。
- 在 [結果] 頁面上,按一下 [關閉] 。
Windows Vista 或 Windows 7
- 在任務欄上,按兩下 [開始],然後按兩下 [控制台]。
- 在 控制台 中,按兩下 [程式和功能],然後按兩下 [開啟或關閉 Windows 功能]。
- 依序展開 [網際網路資訊服務]、[萬維網服務] 和 [效能功能]。
- 如果您想要安裝動態壓縮,請選取 [Http Compression Dynamic],如果您想要安裝靜態壓縮,請選取 [靜態內容壓縮]。
- 按一下 [確定]。
作法
沒有使用者介面可設定 IIS 7 的靜態內容類型。 如需如何以程式設計方式設定靜態內容類型的範例,請參閱 本檔的<程式代碼範例 >一節。
組態
屬性
無。
子元素
add |
選擇性項目。 將MIME類型新增至靜態MIME類型的集合。 |
---|---|
remove |
選擇性項目。 從靜態MIME類型集合中移除MIME類型的參考。 |
clear |
選擇性項目。 從靜態MIME類型集合中移除MIME類型的所有參考。 |
組態範例
下列預設 <httpCompression>
元素是在 IIS 7 的 ApplicationHost.config 檔案中設定。 除非您使用 元素,否則此組態區段會繼承預設組 <clear>
態設定。
<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>
範例程式碼
下列程式代碼範例會將 Office 2003 檔的 MIME 類型新增至靜態壓縮類型清單。
( [> !注意]
Office 2007 檔使用內建壓縮,因此不需要由 IIS 壓縮。
AppCmd.exe
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/msword',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-powerpoint',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-excel',enabled='True']" /commit:apphost
注意
當您使用 AppCmd.exe 來設定這些設定時,請務必將認可參數apphost
設定為 。 這會將組態設定認可到 ApplicationHost.config 檔案中的適當位置區段。
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
ConfigurationElementCollection staticTypesCollection = httpCompressionSection.GetCollection("staticTypes");
ConfigurationElement addElement = staticTypesCollection.CreateElement("add");
addElement["mimeType"] = @"application/msword";
addElement["enabled"] = true;
staticTypesCollection.Add(addElement);
ConfigurationElement addElement1 = staticTypesCollection.CreateElement("add");
addElement1["mimeType"] = @"application/vnd.ms-powerpoint";
addElement1["enabled"] = true;
staticTypesCollection.Add(addElement1);
ConfigurationElement addElement2 = staticTypesCollection.CreateElement("add");
addElement2["mimeType"] = @"application/vnd.ms-excel";
addElement2["enabled"] = true;
staticTypesCollection.Add(addElement2);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
Dim staticTypesCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection("staticTypes")
Dim addElement As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement("mimeType") = "application/msword"
addElement("enabled") = True
staticTypesCollection.Add(addElement)
Dim addElement1 As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement1("mimeType") = "application/vnd.ms-powerpoint"
addElement1("enabled") = True
staticTypesCollection.Add(addElement1)
Dim addElement2 As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement2("mimeType") = "application/vnd.ms-excel"
addElement2("enabled") = True
staticTypesCollection.Add(addElement2)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection;
var addElement = staticTypesCollection.CreateNewElement("add");
addElement.Properties.Item("mimeType").Value = "application/msword";
addElement.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement);
var addElement1 = staticTypesCollection.CreateNewElement("add");
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint";
addElement1.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement1);
var addElement2 = staticTypesCollection.CreateNewElement("add");
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel";
addElement2.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement2);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection
Set addElement = staticTypesCollection.CreateNewElement("add")
addElement.Properties.Item("mimeType").Value = "application/msword"
addElement.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement)
Set addElement1 = staticTypesCollection.CreateNewElement("add")
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint"
addElement1.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement1)
Set addElement2 = staticTypesCollection.CreateNewElement("add")
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel"
addElement2.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement2)
adminManager.CommitChanges()