Angular nginx不提供svg文件

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

我使用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 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文件在你的服务器上的什么位置?