【发布时间】:2016-06-05 13:37:37
【问题描述】:
很抱歉,如果有人问过这个问题,但我找不到它,我什至不确定我在搜索什么。
我的网络应用程序(托管在 Google 应用程序引擎上)中的 /search/ 页面上有链接,例如:
<a href="./details/">Details</a>
或
<a href="details/">Details</a>
只要 /search/ 有尾部反斜杠(指向 /search/details/),两者都可以工作,但如果 /search 缺少尾部反斜杠(而不是指向 /details/)则中断
把链接写成:
<a href="/search/details/">Details</a>
总是指向正确的位置,但这不起作用,因为我有一个用于搜索结果的模板,而且它们有时会出现在 /search/ 以外的页面上,并且每个页面都需要自己独特的详细信息请求处理程序。
有没有办法保证
<a href="./details/">Details</a>
语法不会中断??
感谢 deceze 的帮助,我想出了一个解决方案,即始终在我的 url 上强制使用斜杠并坚持相对结构。我重定向所有请求,不带斜杠:
('.*[^/]$', AddSlashHandler),
处理程序会这样做:
class AddSlashHandler(Handler):
def get(self):
if self.request.path:
red_url = self.request.path + '/'
if self.request.query_string:
red_url += '?' + self.request.query_string
self.redirect(red_url)
else:
self.redirect('/')
【问题讨论】: