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;
}
}
}