Сбой в работе приложения React с Flask с файлами stati c - PullRequest
2 голосов
/ 07 февраля 2020

Я пытаюсь сделать очень простую вещь, обслуживать приложение реагирования с Flask, но все предложения в других темах не работают, и это становится разочаровывающим.

У меня есть структура каталогов это выглядит так:


client
      build
           static
           index.html

Итак, все файлы JS / CSS находятся в каталоге stati c. Я последовал обычному совету и придумал следующее:

app = Flask(__name__, static_folder='../client/build')

@app.route("/")
def serve():
    """serves React App"""
    return send_from_directory(app.static_folder, "index.html")

@app.route("/static/<path:path>")
def static_proxy(path):
    """static folder serve"""
    file_name = path.split("/")[-1]
    dir_name = os.path.join(app.static_folder, "/".join(path.split("/")[:-1]))
    return send_from_directory(dir_name, file_name)

и с этим он выполняет индекс. html из каталога сборки, когда я открываю root url. Однако проблема возникает при загрузке индекса. html, поскольку все файлы stati c являются ссылками, подобными этой static/js/file.js, которая переводится в запрос GET - localhost/static/js/file.js и не может быть найдена. Я понял, что для того, чтобы удачно набрать static/js/file.js, мне нужно использовать этот URL localhost/build/static/js/file.js.

Итак, для доступа к файлам stati c мне нужно добавить build префикс везде. Есть ли лучший способ решить эту проблему?

1 Ответ

0 голосов
/ 08 февраля 2020

После стольких попыток и попыток использования различных вариантов я отказался от решения этой проблемы с Flask. Я обнаружил, что могу просто создать приложение реагирования, например,

export PUBLIC_URL = / build

npm выполнить сборку

, чтобы получить все ссылки иметь путь, который flask ожидает (build / static / *)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...