部署Flask应用程序后更改URL

2024-09-27 07:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我有一个flask应用程序,它在未部署时可以很好地工作。假设它有/index//home//home/field/的页面。现在我已经使用Apache和mod_wsgi部署了这个应用程序,它需要为每个URL提供一个前缀。在

现在,它应该看起来像/newapp/index/和{}和{}。在

因此,我更改了所有的URL以包含新的/newapp/前缀,但是唯一可以使用它的URL是原始的/index/URL。所有其他返回

Not Found The requested URL was not found on the server.

在浏览器中单击该URL时。我肯定在我的main.py中处理了这个路由,所以我不知道为什么找不到它。在

有人知道怎么回事吗?在


编辑:添加一些代码

基本上,我更改了main.py中的所有代码:

原版

@app.route('/')
@app.route('/index/', methods=['GET', 'POST'])
def index():
    #Stuff    

@app.route('/home/')
def farms():
    #More stuff

@app.route('/home/<selector>')
def fields(selector):
    #Further stuff

致。。。。在

新代码

^{pr2}$

我这么做是因为我使用的域名已经有了另一个Flask应用程序,所以我不得不区分这两个应用程序。另外,我希望将来会有更多的flask应用程序,所以这个newapp将成为任何给定flask应用程序的标识符。在

我变了主.py我的模板中也包含了所有的href。因此,hrefs从

href=/index/

href=/newapp/index/

而且,每当我点击一个链接时,我都会看到上面的错误


更多信息

所以,检查apache错误日志,一个错误会说,File does not exist: /var/www/flask_util.js,,因为在我的main.py中,我调用from flask_util_js import FlaskUtilJs。我不确定这是否与URL路由有关,但可能是这样


Tags: 代码pyapp应用程序urlflaskhomeindex
1条回答
网友
1楼 · 发布于 2024-09-27 07:19:21

不需要在代码中添加前缀。在

假设你有代码

@app.route('/hi', methods = ['GET','POST'])
def myIndex():
    return "Hello World!", 200

然后将别名设置为www.myserver.com/app/在

^{pr2}$

服务器应该自动映射www.myserver.com/app/hi在你的申请中。在

但是,如果将映射设置为

@app.route('/newapp/hi', methods = ['GET','POST'])
def myIndex():
    return "Hello World!", 200

您的WSGI应用程序将只接收对/hi的调用(服务器去掉前缀),因此它将找不到匹配的路径并返回notfound。在

相关问题 更多 >

    热门问题