docker nginx没有加载css样式

Posted

技术标签:

【中文标题】docker nginx没有加载css样式【英文标题】:docker nginx not loading css styles 【发布时间】:2021-06-27 10:09:37 【问题描述】:

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

我正在使用基础映像在 docker 容器中运行 Nginx。 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 帖子:SO postSO post

【问题讨论】:

【参考方案1】:

在SO answer 和 cmets 的帮助下,我能够让它工作。如果我的回答对你没有帮助,我建议你在 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;
    
  

【讨论】:

以上是关于docker nginx没有加载css样式的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理转发后页面上的js css文件无法加载原创

SpringMVC项目加载不出css和js

css样式加载慢,怎么解决。求大神帮忙!

css样式设定样例说明

为啥我的 Django 管理站点没有样式/CSS 加载?

nginx设置反向代理后,页面上的js css文件无法加载