2017-08-09 220 views
0

我想爲燒瓶提供反應應用程序,但「static_folder」似乎不起作用。這是我很小的代碼:燒瓶:無法訪問靜態文件夾中的文件(404)

from flask import Flask 
from flask_restful import Resource, Api 

app = Flask(__name__, static_folder="react_app/build") 
api = Api(app) 

class HelloWorld(Resource): 
    def get(self): 
     return app.send_static_file("index.html") 

api.add_resource(HelloWorld, '/') 

if __name__ == '__main__': 
    app.run(debug=True) 

在瀏覽器中我可以達到http://localhost:5000並返回我正確的index.html。但是所有的靜態文件如css和js文件都會返回404錯誤。例如有一個文件:react_app/build/bundle.cssreact_app/build/js/some_name.js。但打字http://localhost:5000/bundle.csshttp://localhost:5000/js/some_name.js都返回404找不到錯誤。

從我的理解,如果我指定一個static_folder,我應該從根URL的該文件夾中的所有文件。我錯過了什麼/錯誤理解?

回答

1

不,這不是the documentation說:

  • static_url_path - 可用於指定Web上的靜態文件不同的路徑。默認爲static_folder文件夾的名稱。
  • static_folder - 應該在static_url_path上提供靜態文件的文件夾。默認爲應用程序根路徑中的'static'文件夾。

因此,您的文件將在localhost:5000/react_app/build中提供。由於這可能不是您想要的,因此您還應該通過static_url_path,並使用類似「static」的值,以便您可以在localhost:5000/static中找到這些文件。