У меня есть изображения 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?
Когда Nginx не распознает тип mime для .svg
файлы, он обслуживает их с заголовком типа содержимого content-type: text/plain
и ваш браузер может не отображать их или может выдавать предупреждение на веб-консоль.
Гарантировать, что /etc/nginx/mime.types
определяет тип mime для изображений svg:
types {
...
image/svg+xml svg svgz;
...
}
Гарантировать, что /etc/nginx/nginx.conf
включает mime.types
файл в блоке http:
http {
include mime.types;
...
}
В терминале проверьте, что ваша новая конфигурация nginx не содержит ошибок:
sudo nginx -t
Перезапустите NGINX, чтобы изменения вступили в силу.
sudo systemctl restart nginx // e.g.: ubuntu
В инструментах разработчика вашего браузера под заголовками сети убедитесь, что файлы svg обслуживаются с заголовком Content-Type: image/svg+xml
и, возможно, обновите вашу веб-страницу, чтобы обновить кеш браузера.
Добавить SVG image/svg+xml svg svgz;
к вашим пантомима в /etc/nginx/mime.types
и перезагрузите Nginx.