2012-02-16 221 views
8

幾次我通過瀏覽器打開位於各個網站上的SVG文件,並將它們顯示爲圖像。
現在,我複製這個相同的SVG,我將它上傳到遠程主機,並且Google Chrome和Firefox都呈現XML代碼。
瀏覽器如何確定是否顯示圖像或XML代碼?在瀏覽器中打開SVG呈現XML代碼而不是圖像

+0

通常,服務器的工作是添加一個適當的標題,以便瀏覽器知道文件類型。你使用什麼服務器? – madth3 2012-02-16 23:49:37

+0

如果我是正確的,並且這是一個服務器配置問題,那麼這裏是offtopic,應該很容易回答尋找相應的服務器文檔。 – madth3 2012-02-16 23:50:50

+0

Apache(現在評論足夠長,可以發佈) – sabof 2012-02-16 23:51:27

回答

2

您必須配置您的服務器以發送帶有Content-Type: image/svg+xml標頭的svg文件。 Here是一個關於如何使用Apache來做到這一點的例子。

+0

這種內容類型配置是否需要其他類型的內容,或者僅僅是SVG?這只是不嚴重 – sabof 2012-02-16 23:58:43

+0

Apache有幾個已配置的MIME類型,但當然不是全部。 – madth3 2012-02-17 00:01:41

+0

@sabof這取決於服務器軟件。 Apache通常使用正確的標題發送SVG圖像(以及大多數其他類型的內容)。你的文件擴展名是'svg'嗎?或者可能會導致您的服務器配置錯誤。 – copy 2012-02-17 00:03:51

10

至於你的最後一個問題:瀏覽器如何確定是否顯示圖像或XML代碼?

答案在於XML命名空間。 XML標籤中指定的XML名稱空間告訴用戶代理如何處理標籤。所以如果你有一個<svg>沒有屬性xmlns="http://www.w3.org/2000/svg"那麼瀏覽器將顯示文本不是SVG呈現的矢量圖形。

+0

這是拼圖的另一部分! – EoghanM 2014-02-04 15:30:48

相關問題