为什么 Google Chrome 在我的烧瓶 url 上附加一个正斜杠,而有 none?
Why is Google Chrome appending a forward slash to my flask url when there is none?
在各种浏览器上测试我的基于 Flask 的网络应用程序时,我发现 Chrome 浏览器在我的一条路线后附加了一个“/”,而且只有一条。此行为导致页面未找到错误,因为我的路线是这样的:
/dictionary
但是Chrome渲染是这样的:
/dictionary/
根据烧瓶,这不是一回事。
这是我的 /dictionary 路线和方法:
@app.route("/dictionary", methods=["GET", "POST"])
def dictionary():
results = []
if request.method == 'POST':
word = request.form.get("word")
# do stuff here
return render_template("results", results=results)
return render_template("dictionary.html")
我的htmlurl:
<a href="{{url_for(dictionary)}}"> </a>
它生成以下预期的 url:
<a href="/dictionary"></a>
请注意,这种奇怪的行为只会在 Chrome 浏览器上出现。它在 Opera、Firefox 和 EI 上运行良好。更奇怪的是,它只在这一条路线上。具有类似方法和 url 建筑物的其他路线正常运行。
N.B:我可以将路由更改为“/dictionary/”,这样它就可以工作,但我希望像路由一样保留“/url_example”。先感谢您。
“/”字符是正斜杠。说这个,strict_slashes
,它要求 URL 如果设置了尾部斜线,或者要求 URL 没有尾部斜线,否则默认启用,导致这个问题.
您可以通过以下操作在整个应用中禁用严格斜杠:
app = Flask(__name__)
app.url_map.strict_slashes = False
您可以从这个答案中了解更多信息:
在各种浏览器上测试我的基于 Flask 的网络应用程序时,我发现 Chrome 浏览器在我的一条路线后附加了一个“/”,而且只有一条。此行为导致页面未找到错误,因为我的路线是这样的:
/dictionary
但是Chrome渲染是这样的:
/dictionary/
根据烧瓶,这不是一回事。
这是我的 /dictionary 路线和方法:
@app.route("/dictionary", methods=["GET", "POST"])
def dictionary():
results = []
if request.method == 'POST':
word = request.form.get("word")
# do stuff here
return render_template("results", results=results)
return render_template("dictionary.html")
我的htmlurl:
<a href="{{url_for(dictionary)}}"> </a>
它生成以下预期的 url:
<a href="/dictionary"></a>
请注意,这种奇怪的行为只会在 Chrome 浏览器上出现。它在 Opera、Firefox 和 EI 上运行良好。更奇怪的是,它只在这一条路线上。具有类似方法和 url 建筑物的其他路线正常运行。 N.B:我可以将路由更改为“/dictionary/”,这样它就可以工作,但我希望像路由一样保留“/url_example”。先感谢您。
“/”字符是正斜杠。说这个,strict_slashes
,它要求 URL 如果设置了尾部斜线,或者要求 URL 没有尾部斜线,否则默认启用,导致这个问题.
您可以通过以下操作在整个应用中禁用严格斜杠:
app = Flask(__name__)
app.url_map.strict_slashes = False
您可以从这个答案中了解更多信息: