Ваши обработчики URL-адресов в app.yaml закорочены. Первый /
совпадает и никогда не попадает во второй обработчик /
. Я думаю, вам нужно что-то вроде:
handlers:
- url: /static
static_dir: build/static/
- url: /(.*)
script: auto
, тогда пусть ваши Flask обработчики сделают всю работу. Затем отправляйте все свои звонки в файлы stati c на /static/somefile.jpg
et c.
EDIT: Если вы хотите облегчить себе жизнь, не обслуживайте index.html
в виде файла stati c. Подавайте его из main.py, как вы это настроили. Все ваши URL-адреса React обрабатываются в main.py, и все они рендерит index.html
отдельно. Вся ваша маршрутизация и компоненты React вызываются изнутри index.html
. Ваши вызовы API также обрабатываются в main.py.
@app.route("/")
def index():
template_context = {
'msg' : "you are on my home page",
}
return render_template("index.html", **template_context)
@app.route("/profile")
def profile():
template_context = {
'msg' : "this is your user profile",
}
return render_template("index.html", **template_context)
@app.route("/hello")
def hello():
return "Hello World!"
EDIT # 2: Если вы настаиваете на обслуживании index. html как файла stati c, вы Вы можете настроить свой app.yaml следующим образом:
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
- url: /static
static_dir: build/static/
- url: /(.*)
script: auto
, и вы удалите обработчик @app.route("/")
из main.py, так как он никогда не будет там.