text/cssとtext/javascript — Webアセットの正しい配信

CSSとJavaScriptファイルが正しいtext/cssとtext/javascript MIMEタイプで配信され、レンダリングやセキュリティの問題を回避する方法。

Best Practices

詳細な説明

CSSとJavaScriptの配信

モダンブラウザはスタイルシートとスクリプトのMIMEタイプについて厳密です。間違ったタイプで配信すると、サイレントエラーが発生する可能性があります。

text/css

ブラウザは、レスポンスのContent-Typeがtext/cssでない場合、スタイルシートの適用を拒否します。これはMIMEタイプチェックと呼ばれるセキュリティ対策です。

text/javascript

RFC 9239(2022年)でtext/javascriptがJavaScriptの唯一の公式タイプとして確立されました。

レガシータイプ ステータス
application/javascript 非推奨(RFC 9239)
application/x-javascript 非標準
text/ecmascript 非推奨

よくあるサーバー設定ミス

問題 症状
CSSをtext/plainで配信 スタイルが適用されない
JSをapplication/octet-streamで配信 スクリプトがブロック
charset欠落 非ASCIIのエンコーディング問題

ユースケース

Webサーバー、CDN、ビルドツールがCSSをtext/cssで、JavaScriptをtext/javascriptで配信していることを確認します。不正なMIMEタイプは、特にX-Content-Type-Options: nosniffが有効な場合、「スタイルが読み込まれない」「スクリプトがブロックされた」問題の一般的な原因です。

試してみる — MIME Type Reference

フルツールを開く