同一目录下friends.html无法加载friends.js,homepage.html可正常访问
解决Django静态文件加载404错误的方案
错误提示里的请求路径是http://127.0.0.1:8000/homepage/static/js/friends.js,这说明你在friends.html里用的相对路径../static/js/friends.js,在当前页面URL(比如/friends/)下被解析成了基于/homepage/的路径,但实际静态文件是部署在根路径/static/下的,所以找不到文件。
核心问题是:你用相对路径引用静态JS文件,但friends页面和homepage的URL路由层级不同,导致相对路径解析出来的地址不对。homepage能正常加载只是巧合——它的URL层级刚好让相对路径命中了正确位置。
修复步骤
直接沿用你加载CSS文件的方式,用Django的{% static %}模板标签生成静态文件的绝对路径,不要用相对路径。
修改friends.html里的script部分:
原来的代码:
<script src="../../static/js/jQuery.js"></script> <script src="../static/js/friends.js"></script>
替换为:
<script src="{% static 'js/jQuery.js' %}"></script> <script src="{% static 'js/friends.js' %}"></script>
这样不管当前页面的URL是什么,Django都会自动生成正确的静态文件路径(比如/static/js/friends.js),彻底避免相对路径带来的解析错误。
额外检查
确保你的settings.py里STATIC_URL配置为/static/(Django默认就是这个配置),如果有自定义配置,{% static %}标签会自动适配。
内容的提问来源于stack exchange,提问作者Caden The Yak
相关产品推荐
相关产品推荐

