在本地中,我的应用程序工作正常,当我使用/editing_buddy时,它会正确地重定向我。问题是,当我将它上传到服务器时,它总是给我404 Error。
如果我尝试使用@app.route装饰器,我会得到一个TOO MANY REDIRECTS error。如果这有帮助的话,我的服务器将由维基媒体在funpedia.toolforge.org中托管。这是一个带有kubernetes后端的webservice。
我的代码是这样的:
app = flask.Flask(__name__)
if __name__ == '__main__':
app.run_server(host='0.0.0.0', threaded=True, debug=True)
# Load configuration from YAML file
__dir__ = os.path.dirname(__file__)
app.config.update(
yaml.safe_load(open(os.path.join(__dir__, 'config.yaml'))))
@app.route('/')
def index():
return flask.redirect(flask.url_for('index'))
@app.route('/editing_buddy')
def buddy():
return flask.redirect(flask.url_for('buddy'))
@app.errorhandler(404)
def handling_page_not_found(e):
return "<h1>404</h1><p>The resource could not be found.</p>", 404"/“和"/editing_buddy”的应用程序是具有相同url_base_pathname的Dash应用程序:
Buddy
buddy_app = Dash(__name__, server=application, url_base_pathname="/editing_buddy/",
external_stylesheets=external_stylesheets)
buddy_app.config['suppress_callback_exceptions'] = TrueHome
home_app = Dash(__name__, server=application, url_base_pathname="/",
external_stylesheets=external_stylesheets)
home_app.config['suppress_callback_exceptions'] = True
from view.home import *
from view.editing_buddy_app import *在本地,我通过运行wsgi.py启动服务器。其中包含以下代码:
from app import app as application
if __name__ == "__main__":
application.run()在服务器中,我只运行webservice restart,但是我有一个名为app.ini的.ini文件,其内容如下:
[uwsgi]
module = wsgi
callable = application我的文件夹结构是

PS:我也尝试过硬编码重定向,比如flask.redirect("/editing_buddy/")。甚至我也尝试过像flask.redirect("funpedia.toolforge.org/editing_buddy/")那样硬编码URL,或者找不到它,或者重定向太多。
你可以看到我的回购 这里
发布于 2021-06-12 16:40:31
现在起作用了为什么?我一点线索都没有。我做了下一个:
app.ini目录中删除了app.py,并将其放在根目录中。home.py中,我将from app import app as application重命名为from app import app。@app.route的破折号应用程序,他们是不需要的,因为你已经有了url_base_pathname。在进行了一些测试之后,我发现解决方案是步骤2.,在home.py脚本中使用from app import app。
但是,在editing_buddy_app.py中,我使用了from app import app as application 和it WORKS
当然,我在这里漏掉了什么,但我猜不出是什么。
https://stackoverflow.com/questions/67949189
复制相似问题