You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx部署静态文件时出现static/media目录重复引用无法访问问题

问题原因

你出现路径重复拼接的核心原因是混淆了Nginx中root和alias指令的用法:
root指令会把完整的location匹配路径追加到指定的根目录后面,你配置location /static/搭配root /home/briansia/django_blog/static/时,访问/static/blog/main.css,Nginx拼接出来的路径就是/home/briansia/django_blog/static/ + /static/blog/main.css,自然就出现了两层static目录,media路径的报错逻辑同理。

修复方案(两种二选一即可)

方案1:将location块的root替换为alias

alias指令只会将location匹配路径之后的部分追加到指定目录后,是静态资源独立路径配置的常用方案:

location /static/ {
    alias /home/briansia/django_blog/static/;
}

location /media/ {
    alias /home/briansia/django_blog/media/;
}

修改后执行nginx -t检查配置语法无误,再执行nginx -s reload重载配置即可生效。

方案2:调整root路径为上层目录

因为你server块已经配置了全局root为/home/briansia/django_blog,可以直接调整static和media location块的root配置和全局一致即可:

location /static/ {
    root /home/briansia/django_blog;
}

location /media/ {
    root /home/briansia/django_blog;
}

这种方式Nginx会自动把/static/路径拼到指定root后面,得到的就是正确的/home/briansia/django_blog/static/xxx路径。

验证步骤

重载配置后清除浏览器缓存访问静态资源,查看nginx-error.log没有新的路径不存在报错即为修复成功。

内容的提问来源于stack exchange,提问作者disguisedtoast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:05