Flask可加载static目录下.css文件但.js文件返回404求助
以下是针对性的排查和解决步骤:
核对JS文件的真实文件名
树莓派基于Linux系统,文件名区分大小写。检查static目录内的JS文件是否和代码中引用的完全一致——比如你代码里写的是bootstrap.min.js,实际文件会不会是Bootstrap.min.js或bootstrap.min.JS?CSS能正常加载说明其文件名匹配,JS大概率是大小写或拼写失误。检查文件权限
在树莓派终端进入static目录,执行ls -l查看权限:cd /你的项目路径/static ls -l确保JS文件的权限和CSS一致,至少要有读权限(比如权限显示为
-rw-r--r--)。如果JS权限是-rw-------,Flask进程无法读取就会返回404,可执行以下命令修正:chmod 644 bootstrap.min.js确认Flask的static路径配置
若代码中自定义了静态资源路径,检查是否配置错误。比如有没有类似:app = Flask(__name__, static_folder='/其他路径')要确保JS文件存放在你指定的
static_folder目录内,而非默认的项目static目录。直接访问JS文件URL验证
用浏览器直接访问JS文件的完整URL,比如http://树莓派IP:5000/static/bootstrap.min.js。如果直接访问仍404,说明文件本身存在问题(不存在、权限错误、路径错误);如果能访问,可能是模板内的引用存在隐藏语法错误(比如引号未闭合),可查看页面源代码确认生成的script标签src属性是否正确。排查模板语法错误
检查模板中script标签前后的代码是否有未闭合的标签,这类问题会导致浏览器解析src路径出错。比如前面的HTML标签没闭合,可能会让浏览器误读script的src属性值。
内容的提问来源于stack exchange,提问作者J. Tanin

