运行flask应用程序时控制台出现错误404



我正在创建一个烧瓶应用程序,并尝试渲染index.html。当我运行应用程序时,会出现以下错误:

127.0.0.1 - - [09/Oct/2020 15:08:16] "GET /dim0/image1.png HTTP/1.1" 404 -
...

这是代码app.py:

...
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()

应用程序结构:

+-- app.py
+-- static
|   +-- dim0
|       +-- image1.png
+-- templates
|   +-- index.html
+-- Procfile
+-- runtime.txt
+-- requirements.txt

Flask需要templates而非template作为默认文件夹名称来保存模板。

参考https://flask.palletsprojects.com/en/1.1.x/api/?highlight=flask#flask.Flask

template_foolder–包含应用程序应使用的模板的文件夹。默认为应用程序根路径中的">templates"文件夹。

如果你想将该文件夹重命名为template,你需要提到应用内定义:

app = Flask(
__name__, 
# static_url_path=None,
# static_folder='static',
# static_host=None,
# host_matching=False,
# subdomain_matching=False,
template_folder='template',  # HERE
# instance_path=None,
# instance_relative_config=False,
# root_path=None
)

更新:

也许你需要在中删除开头的/

<img src="{{ url_for('static', filename='dim0/image1.png') }}" alt="..">

经过近一天的搜索,我唯一遗漏的是这行static_url_path=''。现在它可以完美地加载每个文件。

app = Flask(__name__, static_url_path='')

最新更新