docker nginx 未加载 css 样式

docker nginx not loading css styles

当使用 Nginx 作为 Web 服务器将静态文件上传到我的服务器时,我的 css、javascript 和 google 字体无法像在本地主机上测试站点时那样工作.

我 运行 Nginx 在 docker 容器中使用基础镜像。
Dockerfile

FROM nginx
COPY example.com.conf /etc/nginx/nginx.conf
COPY build /etc/nginx/html/

nginx.conf

user nginx;

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    include /etc/nginx/mime.types;
    root /etc/nginx/html;
    index index.html;

    location ~ \.css {
      add_header  Content-Type    text/css;
    }
    location ~ \.js {
      add_header  Content-Type    application/x-javascript;
    }

    location / {
      try_files $uri /index.html =404;
    }
  }
}

有人可以告诉我我的 conf 有什么问题吗?

此外,当在 Chrome 上查看时,控制台会记录此 Resource interpreted as Stylesheet but transferred with MIME type text/plain

一些其他SO post 我看了:
SO post
SO post

在这个 SO answer 和评论的帮助下,我能够让它工作。如果我的回答对您没有帮助,我建议您在 docker 容器中 运行 Nginx 时查看那个。

对我来说是移动 include /etc/nginx/mime.types; 并添加 sendfile on; 在我的 server 街区外和 http 街区内

我的 example.com.conf 现在看起来像这样:

user nginx;

events {
  worker_connections  4096;  ## Default: 1024
}

http {

  include /etc/nginx/mime.types;
  sendfile on;

  server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    root /etc/nginx/html;
    index index.html;

    location ~ \.css {
      add_header  Content-Type    text/css;
    }
    location ~ \.js {
      add_header  Content-Type    application/x-javascript;
    }

    location / {
      try_files $uri /index.html =404;
    }
  }
}