我正在尝试使用Flask编写一个简单的API。我正在关注Miguel Grinberg的blog。
我有一个用例,我正在尝试提供静态页面。我无法提供静态网页。
这是我的app.py
from flask import Flask, request, abort, render_template
app = Flask(__name__)
@app.route('/sample/application/', methods=['GET'])
def static_website():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
以下是我的目录布局:
flask_application/
- app.py
- static/
- index.html
- cs/
- app.css
- bootstrap.css
- js/
- jquery.js
- images/
- logo.png
在任何人将此标记为重复之前,我已经阅读了以下帖子并且未解决我的问题。
还有其他问题,但没有一个问题提供了解决静态页面中的css,js文件的具体解决方案。
Flask创建的服务器无法获取js,css文件。
另外,我正在避免模板,因为这是我唯一的用例,我很确定,我不会添加任何其他页面或使其更复杂。
答案 0 :(得分:2)
模板需要位于名为templates
的文件夹中。所以正确的解决方案应该是
flask_application/
- templates/
- index.html
您可以阅读render_template
方法的documentation。
答案 1 :(得分:-1)
如果您不关心渲染模板,您只需在路线上发送静态文件即可。这样您就可以将所有内容保留在static
目录中。
app.send_static_file('index.html')
请记住,其他资产需要引用为/static/<asset>
,即<script src="/static/js/jquery.js></script>