使用来自不同目录的Flask服务单个index.html

时间:2018-11-29 09:42:44

标签: python flask

我目前具有这样的文件夹结构:

/
--client
----dist
------index.html
------index.js
--server
----server.py

index.js中的dist/用于React应用程序。我的server.py看起来像这样:

import os
from flask import Flask, send_from_directory
app = Flask(__name__)

@app.route('/')
def hello_world():
    return send_from_directory('../client/dist/', 'index.html')

if __name__ == "__main__":
    app.run()

不幸的是,这没有用,我得到了Failed to load resource。我在SO以及其他方面查看了几篇文章。它们中的大多数都很老(也许已经过时),并且它们通常具有不同的文件夹结构,其中index.html文件是从static内的server/文件夹提供的,或者类似的文件。

我真的只是想做我想像的一项简单的任务:当访问localhost:5000时,Flask服务../client/dist/index.html,然后React接手并做事。

如果有人能为我提供实现目标的最小/清洁方式,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

原来,我有点不对。我以为问题不是转发,但经过更多搜索后,我发现了另一个与我的非常相似的StackOverflow问题:

Serving static html file from another directory from flask restful endpoint

从那里和其他地方收集一些答案,我有一个最小的可行解决方案:

from flask import Flask, send_from_directory
app = Flask(__name__, static_folder='../client/dist')

@app.route('/')
def hello_world():
    return send_from_directory(app.static_folder, 'index.html')

if __name__ == "__main__":
    app.run()

现在访问localhost:5000时,我会收到index.html的内容。