解決.svg無法在Azure websites載入顯示的問題
SVG稱可縮放的向量圖形,它本身有兩種格式,一種是XML格式,簡單想,它就如同一般HTML tag一樣,在網頁的中它使用<svg></svg>
標籤。
SVG的XML格式
以下是使用wiki上的範例程式碼,你只要使用<svg></svg>
標籤,就能在網頁上畫面你想要的任何向量圖。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="467" height="462"> <!-- This is the red square: --> <rect x="80" y="60" width="250" height="250" rx="20" fill="red" stroke="black" stroke-width="2px" /> <!-- This is the blue square: --> <rect x="140" y="120" width="250" height="250" rx="40" fill="blue" stroke="black" stroke-width="2px" fill-opacity="0.7" /> </svg> </body> </html>
.svg檔案
如果你的這張SVG是要在多個網頁共用,那麼你也可以把上述SVG的XML另存為一個.svg的檔案中,.svg只是慣用的副檔名,內容基本還是剛剛的XML格式內容。
從圖片上可以看到,Visual Studio在編輯.svg檔案上也非常方便(就只是XML),並且提供預覽功能。各位可以在w3.org svg sameple找到更多很cool的範例。例如w3.org裡的car.svg範例:
你可以按【Ctrl+F5】看一下Car動畫效果。
發行至Microsoft Azure website
修改一下html,同時使用<svg>與.svg檔案:
<p>下圖使用<svg></p> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="467" height="462"> <!-- This is the red square: --> <rect x="80" y="60" width="250" height="250" rx="20" fill="red" stroke="black" stroke-width="2px" /> <!-- This is the blue square: --> <rect x="140" y="120" width="250" height="250" rx="40" fill="blue" stroke="black" stroke-width="2px" fill-opacity="0.7" /> </svg> <p>下圖使用.svg</p> <img src="car.svg" alt="car svg sample">
將頁面與car.svg發行至Azure website測試:
很明顯.svg檔案的載入有問題,開啟Dev Tool可以看到car.svg得到是HTTP 404錯誤。
staticContent段落設置
如果要讓Azure websites支援.svg檔案,我們必須修改根目錄下的Web.config,加入以下段落設置:
<configuration> <system.webServer> <staticContent> <remove fileExtension=".svg"/> <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> </staticContent> </system.webServer> </configuration>
重新設置mimeType後,重新發行後就能看到.svg檔案被正確載入並呈現了。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。