1. 问题现象

如上图所示 静态文件404
2. 问题排查&解决
首先考虑文件本身的引用路径是否匹配nginx的配置
引入路径
<link href="/public/css/bootstrap.css" rel="stylesheet"/>
nginx 配置 (root 配置代替你的域名)
#js模块
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
root /www/workspace/static;
expires max;
log_not_found off;
}
经过测试 发现nginx配置正确, nginx 配置文件不是问题所在.
考虑nginx容器是否能够读取静态文件
services:
cgi:
container_name: php7.2
image: php:7.2
restart: always
expose:
- "9000"
ports:
- "9000:9000"
volumes:
- ../myspace:/www/workspace/
depends_on:
- mysql
- redis
links:
- mysql:mysql
- redis:redis
nginx:
container_name: nginx_v1
image: openresty:v1
restart: always
volumes:
- ./config/nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/log/nginx
ports:
- 80:80
- 443:443
发现 nginx 容器下没有挂载 JS文件所在的目录
在nginx volumes 下添加只读共享配置
- ../myspace:/www/workspace/:ro
重新compose 安装 运行
bingo 问题解决!!!!
这篇博客主要记录了在遇到Nginx服务器返回静态文件404错误时的排查过程。首先检查了Nginx配置文件中关于静态资源的路径设置,确认无误。然后检查nginx容器的挂载配置,发现缺少对JS文件目录的挂载。通过在nginx容器的volumes配置中添加静态文件目录的只读挂载,并重新部署,成功解决了404问题。

被折叠的 条评论
为什么被折叠?



