Nginx
我需要配置在 nginx 中顯示的 SVG 圖像嗎?
我在一個文件夾中有 SVG 圖像,還有一個 PNG 文件,以確保這些圖像顯示在頁面上。
我的 nginx 配置基本上是這樣的:
server { listen 80; location / { root www; } }
圖像在
www/images
文件夾中。我在頁面中看到的是相同的結構:
<img src="images/logo.svg"> <img src="images/logo.png">
PNG 文件按預期顯示在頁面上,但不是 SVG。它顯示在瀏覽器程式碼 200 的網路選項卡中,但為空。
當我嘗試直接打開它時,例如
http://localhost/images/logo.svg
,它只是將其作為文件下載。我是否需要添加一些特殊的配置才能使 SVG 文件在像 PNG/JPG 文件這樣的頁面上顯示?
將 SVG 添加
image/svg+xml svg svgz;
到您的 mime 類型/etc/nginx/mime.types
並重新載入您的 Nginx。
當 Nginx 無法辨識
.svg
文件的 mime 類型時,它會為它們提供內容類型標頭content-type: text/plain
,您的瀏覽器可能不會呈現它們,或者可能會向 Web 控制台發出警告。
- 確保
/etc/nginx/mime.types
為 svg 圖像定義 mime 類型:types { ... image/svg+xml svg svgz; ... }
- 確保在 http 塊中
/etc/nginx/nginx.conf
包含該文件:mime.types
http { include mime.types; ... }
- 在終端中檢查您的新 nginx 配置是否沒有錯誤:
sudo nginx -t
- 重啟 NGINX 以使更改生效
sudo systemctl restart nginx // e.g.: ubuntu
- 在網路標頭下的瀏覽器開發工具中,檢查 svg 文件是否與標頭一起提供,
Content-Type: image/svg+xml
並可能硬刷新您的網頁以更新瀏覽器記憶體。