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

Flask开发Web应用时遭遇404资源加载失败问题求助

Flask Web应用404资源加载失败问题排查与解决

问题1:静态资源路径使用相对路径导致404

你的Home.html中所有静态资源(CSS、JS、图片)都使用了../static/...这类相对路径,但Flask的静态文件服务默认通过绝对路径/static/提供访问,相对路径会让浏览器解析出错误的资源请求地址,最终返回404。

解决办法

将所有静态资源的路径改为绝对路径,去掉前缀../:

  • CSS引用修改为:<link rel="stylesheet" href="/static/index.css">
  • JS引用修改为:<script src="/static/index.js"></script>
  • 图片引用示例修改为:<img src="/static/images/5.jpg" id="about.image">

问题2:首页路由装饰器缺失导致页面访问异常

你的app.py中index函数的路由装饰器缺少@符号,导致该路由未被Flask注册,访问根路径/时会出现异常,间接影响静态资源的加载逻辑。

解决办法

修改app.py中的首页路由代码,添加@符号:

@app.route('/')
def index():
    return render_template('Home.html')

额外检查项

  • 确认static目录下的文件存在:检查index.css、index.js以及images目录下的图片文件是否真实存在,文件名和路径要与代码中的引用完全一致(注意大小写,Linux系统下.JPEG和.jpeg会被视为不同文件)。
  • 表单提交路径验证:JS中使用的/SubmitForm是正确的绝对路径,且该路由在app.py中已正确注册,无需修改。

修改后关键代码示例

修改后的app.py

from flask import Flask, request, jsonify, render_template
import sqlite3

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('Home.html')

@app.route('/SubmitForm',methods=['POST'])
def SubmitForm():
    data = request.get_json()
    name, email, message = data['name'], data['email'], data['message']
    connection = sqlite3.connect("messages.db")
    cursor = connection.cursor()
    cursor.execute("""CREATE TABLE IF NOT EXISTS messages(name TEXT,email TEXT,message TEXT)""")
    cursor.execute("INSERT INTO messages VALUES(?,?,?)",[name,email,message])
    connection.commit()
    connection.close()
    response = jsonify({'status': 'success', 'message': 'message added to the database successfully'})
    return response

if __name__ == '__main__':
    app.run()

修改后的Home.html(路径修改部分)

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Libertas startup</title>
    <link rel="stylesheet" href="/static/index.css">
</head>
<!-- ...中间内容省略... -->
<img src="/static/images/5.jpg" id="about.image">
<!-- ...其他图片引用均改为绝对路径... -->
<script src="/static/index.js"></script>

完成上述修改后,重启Flask应用,静态资源即可正常加载,404错误会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:27:02