2012-02-16 7 views
8

何度かブラウザからさまざまなサイトにあるSVGファイルを開いて、画像として表示しました。
これは同じSVGをコピーしてリモートホストにアップロードし、Google ChromeとFirefoxの両方でXMLコードをレンダリングします。
イメージやXMLコードを表示するかどうかは、ブラウザによってどのように決定されますか?ブラウザでSVGを開くと、画像の代わりにXMLコードがレンダリングされる

+0

通常、ブラウザーでファイルの種類が分かるように、適切なヘッダーを追加するのはサーバーの作業です。どのサーバーを使用していますか? – madth3

+0

私が正しく、これがサーバー構成上の問題である場合、ここではofftopicであり、対応するサーバーのドキュメントを見れば簡単に答えられるはずです。 – madth3

+0

Apache(今はコメントが長すぎて投稿できません) – sabof

答えて

2

Content-Type: image/svg+xmlヘッダーのsvgファイルを送信するようにサーバーを設定する必要があります。 HereはApacheでこれを行う方法の例です。

+0

このコンテンツタイプの設定は、他の種類のコンテンツ、またはSVGだけに必要ですか?これはちょうど深刻ではありません – sabof

+0

Apacheには既にいくつかのMIMEタイプが設定されていますが、もちろん、すべてではありません。 – madth3

+0

@sabofこれはサーバーソフトウェアによって異なります。 Apacheは、通常、右のヘッダーでSVGイメージ(および他のほとんどのタイプのコンテンツ)を送信します。あなたのファイル拡張子は 'svg'ですか?あるいは、あなたのサーバーが誤って構成されている可能性があります。 – copy

10

最後の質問は次のとおりです。ブラウザは画像やXMLコードを表示するかどうかをどのように判断しますか?

答えはXML名前空間にあります。 XMLタグで指定されたXML名前空間は、ユーザーエージェントにタグの処理方法を知らせます。したがって、属性xmlns="http://www.w3.org/2000/svg"のない<svg>がある場合、ブラウザにはSVGレンダリングされたベクターグラフィックスではなくテキストが表示されます。

+0

これはパズルのもう一つです! – EoghanM

関連する問題