Angular nginx不提供svg文件
我使用Angular创建了一个Ionic应用程序,并将其部署到android、iso和web上。但是web版本不显示svg,尽管它被渲染到dom中。我使用nginx image来构建docker conainter,在大量的谷歌搜索之后,我发现我需要在nginx.conf中包含mime.types并添加Angular nginx不提供svg文件,angular,nginx,svg,ionic5,Angular,Nginx,Svg,Ionic5,我使用Angular创建了一个Ionic应用程序,并将其部署到android、iso和web上。但是web版本不显示svg,尽管它被渲染到dom中。我使用nginx image来构建docker conainter,在大量的谷歌搜索之后,我发现我需要在nginx.conf中包含mime.types并添加 image/svg+xml svg svgz; 输入已经存在的mime.types。我已经尝试了几乎所有的修复,但SVG仍然不起作用 这是我的nginx配置 worker_processes
image/svg+xml svg svgz;
输入已经存在的mime.types。我已经尝试了几乎所有的修复,但SVG仍然不起作用
这是我的nginx配置
worker_processes 4;
events { worker_connections 1024; }
http {
include mime.types;
default_type application/octet-stream;
server {
listen 8080;
root /usr/share/nginx/html;
location / {
try_files $uri /index.html;
}
location /health-check {
access_log off;
return 200;
add_header Content-Type text/plain;
}
}
}
下面是对我的curl请求的响应
curl -I https://my-webiste-domain.com/svg/mail.svg
HTTP/2 200
date: Fri, 16 Oct 2020 08:38:59 GMT
content-type: text/html
content-length: 1270
server: nginx/1.19.3
last-modified: Fri, 16 Oct 2020 05:47:23 GMT
etag: "5f8933eb-4f6"
accept-ranges: bytes
我认为内容类型应该是
Content-Type: image/svg+xml
@RobertLongson感谢您指出curl命令。我用CURL运行了这个命令,发现它提供的是index.html文件。在仔细检查我的docker容器后,我发现复制命令在复制到nginx/html并将所有内容复制到nginx/html时并没有保留子目录。因此没有任何svg目录。但我认为nginx.conf中的try_文件始终提供状态为200的index.html 安威 改变了这个
COPY www/* /usr/share/nginx/html/
在我的dockerfile中找到这个
COPY ./www /usr/share/nginx/html/
这解决了问题。删除-I,我假设curl返回的是一个html文档,该文档表示未找到文件或类似内容。阅读它可能会给你一个错误的线索。例如,mail.svg文件在你的服务器上的什么位置?