在Flask中设置静态文件夹路径

Stu*_*Cat 5 python flask

好像我的静态文件没有正确提供.这就是它现在的样子:

myApp
    __init__.py
    static
       img
       js
         bootstrap.min.js
       etc.
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序配置在我的__init__.py外观:

app = Flask(__name__, static_url_path="", static_folder="static")
Run Code Online (Sandbox Code Playgroud)

这是错误:

127.0.0.1 - - [01/Dec/2014 13:12:01] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 -
Run Code Online (Sandbox Code Playgroud)

至于url路由,没有问题,localhost/home路由到home,localhost /联系路由联系等等.但是没有找到静态文件:(我错过了什么?

注意:我在Mac上托管这个,纯粹是本地主机

这是我的__init__.py主要方法:

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
Run Code Online (Sandbox Code Playgroud)

运行方式:

python __init.py__
Run Code Online (Sandbox Code Playgroud)

dir*_*irn 8

看起来您正在硬编码静态文件URL.你告诉Flask服务它们没有URL前缀 - 默认值是/static- 但日志显示请求/static/js/bootstrap.min.js.您可能在模板文件中有类似以下内容的内容.

<script src="/static/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

相反,您应该使用url_for为您创建URL.将上面的内容改为

<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)

这将导致

<script src="/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • 当请求静态资源时,Flask 的 `static` 端点将尝试从为 `static_folder` 指定的文件夹中提供它。 (2认同)