我正在尝试设置路由并启用可选的“格式”扩展,以指定页面是作为标准HTML页面加载还是加载到灯箱内。
在http://routes.groovie.org/setting_up.html#format-extensions之后,我想出了:
map.connect('/info/test{.format:lightbox}', controller='front', action='test')
class FrontController(BaseController):
def test(self, format='html'):
print format
这失败了。我的路线搞砸了,网址显示为/front/test
而不是/info/test
。它正在回归/{controller}/{action}
。
如何允许格式扩展? :/
答案 0 :(得分:1)
一般而言:
http://pylonsbook.com/en/1.1/urls-routing-and-dispatch.html#pylons-routing-in-detail
路由然后从从上到下搜索路线图中的每条路线,直到找到与该路径匹配的路线。由于匹配是从上到下完成的,因此建议您将自定义路径放在Pylons提供的路径下方,以确保您不会意外干扰Pylons的默认行为。更一般地说,您应该始终将最常规的路线放在路线图的底部,以便在路线图中较低的特定路线之前不会意外地匹配它们。
答案 1 :(得分:0)
我要检查的第一件事是你使用路线1.12。一些发行版仍在1.11上,它不支持格式扩展。
其次,检查路由的定义顺序。这很重要。