2014-12-01 68 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