読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Web Apps に足りない MIME 設定を一括で追加できる XDT を作った

Azure Web Apps

昨日 IIS Manager Extension の紹介として JSON の MIME 設定を追加しましたが、折角なので最新の IIS 10.0 で定義されている MIME Map と比較してみました。

設定を丸っとコピーしてきて、差分を出してみると結構な差がありました。

f:id:shiba-yan:20160220000956p:plain

有名なものを挙げると WebM や JSON LD、woff などの、最近の HTML5 アプリケーションの配信に必要となりそうな MIME が追加されていました。裏を返せば、今の Web Apps では手動で追加する必要があります。

MIME の設定などは XDT でやりなさい、と言うフィードバックへの回答もあります。

completed
How can we improve Azure Web Apps (formerly Websites)?
  • 6 votes
  • 0 comments

Add major video MIME set as default

We know there is a way to add MIME type using web.config but if possible is it add platform site as default to avoid miss configuration?

何故か mp4 すら追加されていなかったのが IIS 10.0 ではデフォルトで追加されているので、Web Apps の IIS がアップデートされると楽ですが、残念ながらまだまだ時間がかかりそうです。

IIS 10.0 相当に MIME Map をアップデートする XDT を作っておいたので、ご自由にお使いください。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" xdt:Transform="Insert" />
      <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" xdt:Transform="Insert" />
      <mimeMap fileExtension=".3gp" mimeType="video/3gpp" xdt:Transform="Insert" />
      <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" xdt:Transform="Insert" />
      <mimeMap fileExtension=".aac" mimeType="audio/aac" xdt:Transform="Insert" />
      <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" xdt:Transform="Insert" />
      <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" xdt:Transform="Insert" />
      <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" xdt:Transform="Insert" />
      <mimeMap fileExtension=".avi" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".avi" mimeType="video/avi" xdt:Transform="Insert" />
      <mimeMap fileExtension=".cab" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" xdt:Transform="Insert" />
      <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" xdt:Transform="Insert" />
      <mimeMap fileExtension=".eot" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" xdt:Transform="Insert" />
      <mimeMap fileExtension=".ics" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".ics" mimeType="text/calendar" xdt:Transform="Insert" />
      <mimeMap fileExtension=".js" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".js" mimeType="application/javascript" xdt:Transform="Insert" />
      <mimeMap fileExtension=".json" mimeType="application/json" xdt:Transform="Insert" />
      <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" xdt:Transform="Insert" />
      <mimeMap fileExtension=".less" mimeType="text/css" xdt:Transform="Insert" />
      <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" xdt:Transform="Insert" />
      <mimeMap fileExtension=".m4a" mimeType="audio/mp4" xdt:Transform="Insert" />
      <mimeMap fileExtension=".m4v" mimeType="video/mp4" xdt:Transform="Insert" />
      <mimeMap fileExtension=".mp4" mimeType="video/mp4" xdt:Transform="Insert" />
      <mimeMap fileExtension=".mp4v" mimeType="video/mp4" xdt:Transform="Insert" />
      <mimeMap fileExtension=".oga" mimeType="audio/ogg" xdt:Transform="Insert" />
      <mimeMap fileExtension=".ogg" xdt:Locator="Match(fileExtension)" xdt:Transform="Remove" />
      <mimeMap fileExtension=".ogg" mimeType="video/ogg" xdt:Transform="Insert" />
      <mimeMap fileExtension=".ogv" mimeType="video/ogg" xdt:Transform="Insert" />
      <mimeMap fileExtension=".otf" mimeType="font/otf" xdt:Transform="Insert" />
      <mimeMap fileExtension=".spx" mimeType="audio/ogg" xdt:Transform="Insert" />
      <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" xdt:Transform="Insert" />
      <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" xdt:Transform="Insert" />
      <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" xdt:Transform="Insert" />
      <mimeMap fileExtension=".webm" mimeType="video/webm" xdt:Transform="Insert" />
      <mimeMap fileExtension=".woff" mimeType="font/x-woff" xdt:Transform="Insert" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" xdt:Transform="Insert" />
      <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" xdt:Transform="Insert" />
      <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" xdt:Transform="Insert" />
      <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" xdt:Transform="Insert" />
    </staticContent>
  </system.webServer>
</configuration>

applicationHost.xdt という名前で保存して、D:\home\site に置いておくとサイトの再起動後に有効になります。サイトの再起動はポータルや Kudu で行ってください。

こうしてみると、既存の MIME 設定も標準の値を使うようにアップデートされているようですね。