Flask无法解析静态文件

时间:2017-03-07 11:45:45

标签: python flask

我正在尝试使用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文件。

另外,我正在避免模板,因为这是我唯一的用例,我很确定,我不会添加任何其他页面或使其更复杂。

2 个答案:

答案 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>