2014-12-01 66 views
3

好像我的静态文件没有被正确地服务。这是它看起来像现在:在Flask中设置静态文件夹路径

myApp 
    __init__.py 
    static 
     img 
     js 
     bootstrap.min.js 
     etc. 

这是我初始化我的应用程序配置的.py的样子:

app = Flask(__name__, static_url_path="", static_folder="static") 

这是错误:

127.0.0.1 - - [01/Dec/2014 13:12:01] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 - 

只要网址路由去,没有问题,本地主机/家庭路由回家,本地主机/联系路线联系等,但静态文件没有被发现:(我是否缺少什么?

注:我在我的Mac主办这次,纯粹本地主机

这是我初始化的.py主营:

if __name__ == "__main__": 
    app.run(host='0.0.0.0', debug=True) 

跑步:

python __init.py__ 
+0

你是如何运行你的应用程序? – dirn 2014-12-01 20:17:38

+0

@dirn编辑问题了解更多详情。 – 2014-12-01 20:48:04

回答

4

它看起来你正在对静态文件URL进行硬编码。您告诉Flask无服务器地址前缀 - 默认值为/static - 但日志显示的请求将转至/static/js/bootstrap.min.js。您可能在模板文件中具有以下内容。您可以使用url_for来为您创建网址。上述更改为

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

这将导致

<script src="/js/bootstrap.min.js"></script> 
+0

啊,就是这样!一个简单的问题是,“url_for(”static“”与我的应用程序中设置的“static_folder”路径有关吗? – 2014-12-02 13:36:46

+0

当请求一个静态资源时,Flask的'static'端点将尝试从' static_folder'。 – dirn 2014-12-02 13:45:04