具有如下目录结构:
Flask_project
-env
-src
--app2.py
-static
--css
---main.css
-templates
--base.html
--index.html
-app.py
如果我使用主文件夹中的app.py加载页面,则会使用:python app.py
加载main.css文件。这是通过以下文件实现的:
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文件夹中的python3srcapp2.py
加载app2.py,如下所示,并重定向template_foolder:
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 %}
如第二个问题所述,您需要定义static
-文件夹的位置:
app = Flask(__name__, template_folder='../templates', static_folder='../static')