MultiViews を備えた Apache サーバーがあります。これが私のディレクトリ レイアウトです。
/style.css [text/css]
/style.xsl [text/xsl]
/index.xml [application/xml]
私の index.xml ファイルでは、XSL を参照しています。
<?xml-stylesheet href="/style"?>
XSL では、CSS を参照します。
<link rel="stylesheet" href="/style" />
このアプローチは、私が試したどのブラウザーでも機能しません。
Firefox-16.0.1 では、次のメッセージが表示されます。
Error loading stylesheet: An XSLT stylesheet does not have an XML mimetype:
HTTP 会話をデバッグすると、Firefox が次のメッセージを送信していることに気付きました。
Accept: */*
Firefox はあらゆる種類のコンテンツを要求しているため、Apache は /style.css を送信することを選択します。
特定のコンテンツ タイプを必要とする Web ブラウザは、それらのコンテンツ タイプに対して明示的な Accept ヘッダーを送信することを期待しています。
Accept 制約を取り除くことを明示的に文書化した他の 2 つの文書を見つけたとき、私はバグを提出する準備ができていました。
ファイル名に拡張子を入れることでこれを回避できますが、これはW3C ブログで説明されているように、画像のコンテンツ ネゴシエーションと同じように機能するはずです。利点は、ドキュメントを更新することなく、後で新しいコンテンツ タイプを追加できることです。
これはバグですか、それとも何か間違っていますか?