记录一次构建Django镜像的错误之二
继解决错误之一后,服务虽然可以正常访问了,但是遇到了bootstrap文件无法找到的问题,访问如下图所示

排查了很久,半天的时间有了,最后找到问题处在nginx的静态地址配置上面
错误的地址配置如下:
location /static/ {
alias /www/day16/app01/static;
}
修改后,正确的配置如下:
location /static/
alias /www/day16/app01/static/;
}
即,后面有无斜杠/
GPT给我的答复如下:
Nginx 配置解析
带斜杠的配置:
location /static/ {
alias /www/day16/app01/static/;
}
这里的 alias 末尾有斜杠,Nginx 会直接将请求路径中的 /static/ 处理为文件路径中的 /static/。所以,当你请求 /static/plugins/bootstrap-3.4.1/css/bootstrap.min.css 时,Nginx 会把这个请求映射到 /www/day16/app01/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css,成功找到文件。
不带斜杠的配置:
location /static/ {
alias /www/day16/app01/static;
}
这里的 alias 没有斜杠。在这种情况下,Nginx 会去掉请求路径中的 /static/,然后将剩下的部分追加到 alias 指定的路径上。也就是说,请求 /static/plugins/bootstrap-3.4.1/css/bootstrap.min.css 会被映射到 /www/day16/app01/staticplugins/bootstrap-3.4.1/css/bootstrap.min.css,显然这样找不到文件,导致404错误。
但是他不带斜杠的配置,我认为存疑,因为我尝试在app01下配置他说的目录,但是访问仍然302
暂时不做深究了先。仅以此作为个记录。
以下是正确加载bootstrap的样子,如下图所示:
