2017-08-09 199 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中找到这些文件。