Ser*_*rov 4 nginx static-content
我在一个文件夹中有 SVG 图像,还有一个 PNG 文件,以确保这些图像显示在页面上。
我的 nginx 配置基本上是这样的:
server {
listen 80;
location / {
root www;
}
}
Run Code Online (Sandbox Code Playgroud)
图像在www/images
文件夹中。
我在页面中看到的结构相同:
<img src="images/logo.svg">
<img src="images/logo.png">
Run Code Online (Sandbox Code Playgroud)
PNG 文件按预期显示在页面上,但不是 SVG。不过,它显示在浏览器代码 200 的网络选项卡中,但正文为空。
当我尝试直接打开它时,例如http://localhost/images/logo.svg
,它只是将其下载为文件。
我是否需要添加一些特殊的配置来使 SVG 文件可以在像 PNG/JPG 文件这样的页面上显示?
小智 5
当 Nginx 无法识别.svg
文件的 MIME 类型时,它会为它们提供内容类型标头,content-type: text/plain
并且您的浏览器可能无法呈现它们或可能会向 Web 控制台发出警告。
确保/etc/nginx/mime.types
为 svg 图像定义 mime 类型:
types {
...
image/svg+xml svg svgz;
...
}
Run Code Online (Sandbox Code Playgroud)确保在 http 块中/etc/nginx/nginx.conf
包含该mime.types
文件:
http {
include mime.types;
...
}
Run Code Online (Sandbox Code Playgroud)在终端中检查您的新 nginx 配置是否没有错误:
sudo nginx -t
Run Code Online (Sandbox Code Playgroud)重新启动 NGINX 以使更改生效
sudo systemctl restart nginx // e.g.: ubuntu
Run Code Online (Sandbox Code Playgroud)在网络标题下的浏览器开发工具中,检查 svg 文件是否与标题一起提供,Content-Type: image/svg+xml
并可能硬刷新您的网页以更新浏览器缓存。
归档时间: |
|
查看次数: |
9795 次 |
最近记录: |