【发布时间】:2024-04-21 21:05:01
【问题描述】:
目录结构如下:
Flask_project
-env
-src
--app2.py
-static
--css
---main.css
-templates
--base.html
--index.html
-app.py
如果我在主文件夹中使用 app.py 加载页面,则 main.css 文件可以正常加载:python app.py。这适用于以下文件:
from flask import Flask, render_template, url_for # import
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
但是,如果我使用位于 \src 文件夹中的 python3 src\app2.py 加载 app2.py,如下所示,并重定向 template_folder:
from flask import Flask, render_template, url_for # import
app = Flask(__name__, template_folder='../templates')
@app.route('/')
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
我无法加载 css\main.css 文件夹,我收到以下错误:
"GET /css/main.css HTTP/1.1" 404 -
我不明白为什么将 app_whatever.py 文件放在子目录(在本例中为 \src)会导致无法找到 main.css 文件?
参考base.html如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{url_for('static', filename='css/main.css') }}">
{% block head %}{% endblock %}
</head>
<body>
{% block body %}
{% endblock %}
</body>
</html>
而index.html 是:
{% extends 'base.html' %}
{% block head %}
{% endblock %}
{% block body %}
<h1> Template </h1>
{% endblock %}
【问题讨论】:
标签: python css flask directory