我遇到了这个错误,但是找不到解决方法。
目录结构如下:
Project
| .env
| .gitignore
| Pipfile
| Pipfile.lock
| run.py
|
---app
| controllers.py
| models.py
| __init__.py
|
---static
| main.css
|
---templates
| about.html
| home.html
| layout.html
run.py的代码如下:
from app import app
if __name__ == "__main__":
app.run(debug=True, port=6060)
init.py是这样的从flask导入flask
app = Flask('__name__', template_folder='app\templates')
app.config['EXPLAIN_TEMPLATE_LOADING'] = True
from app import models
from app import controllers
首先,我遇到了一个问题,因为它找不到templates
文件夹,所以我打开模板加载,并注意到它没有正确加载路径。templates
文件夹在app/
文件夹内,但调试日志显示脚本正在根目录中寻找tempaltes
文件夹。我硬编码了应用初始化。我仍然不知道为什么,但是它起作用了。
现在的问题是,然而,脚本是无法找到app/static/main.css
文件以及
在layout.html
页我有以下行。
<link rel="stylesheet" type="text/css" . href="{{url_for('static', filename='main.css')}}">
当我查看页面的源代码时,它显示:
<link rel="stylesheet" type="text/css" . href="/static/main.css">
再次,它在根文件夹中查找,而不是在app
文件夹中查找。
而不是调整和寻找黑客,我想修复它,所以它总是在app
下而不是根。我想它也会解决templates
的问题。
请建议。
我不确定,但我认为这一行是你的问题
app = Flask('__name__', template_folder='app\templates')
模板文件夹应该是默认的,我没有引用__name__…试着把它改成
app = Flask(__name__)
然后试试这里的jinja
{{url_for('static', filename='main.css')}}
也应该是默认值。我真的不知道为什么它不工作,但这可能是问题所在。