Flask, Build, and accessing the Static directories
See original GitHub issueHi there. I’m having an awful time trying to figure out what I’ve messed up.
The result of running npm run build
is that I have a production directory at foo/app/build/
. This includes all of the good stuff, e.g. static/
, index.html
, manifest.json
, etc. My flask app is served from foo/__init__.py
and declared with app = Flask(__name__, static_folder="./app/build/static", template_folder="./app/build")
.
As usual, the index.html in app/build
is the entry point, and it loads React at /static/js/main.<hash>.js
. This works as expected. So does the /static/css/*
files and so forth. What I mean by that is that if I try to serve localhost from the build, then I can visit http://localhost:5000/static/js/main.<hash>.js and it will load the minified js.
However, nothing else in foo/app/build can be seen and loaded, even though the server is returning 200s when I request the root:
@a.app.route('/', methods=['GET'])
def index():
return render_template('index.html')
@a.app.route('/<path:path>', methods=['GET'])
def any_root_path(path):
return render_template('index.html')
This includes the inex.html, service-worker.js, the favicon.ico, and the manifest.json. If I run npm start
and use a proxy to talk to the client at port 3000 and the server at port 5000 (on localhost), then everything works. That of course won’t fly for production.
Any idea what’s going on?
Issue Analytics
- State:
- Created 6 years ago
- Comments:6 (2 by maintainers)
Top GitHub Comments
@cinjon My flask example with CRA build https://github.com/CharlyJazz/TalkCode/blob/master/app/controllers/web/web.py
It ended up being an unrelated issue somewhere else in the code.