On 09 November 2000, Andrew Kuchling said:
> No, that wouldn't work. The problem is that /process/review/300 and
> .../300/ take you to the same object and produce the same output, but
> that breaks relative URLs, since a url like HREF="summary" would go to
> process/review/summary and .../review/300/summary in the two cases.
> You could write some code to figure out the correct full URL, but it
> seems to me it's easier to just always ensure that the trailing / is
> there.
+1 from me for exactly this reason: relative URLs in the 'index()' of a
method returned by '__getname__()'.
> If the traversal is something like /review/300/sequence, then no
> trailing slash is needed, and none is added by this patch, since the
> final object is a method, not a module or an instance.
This suggests a very simple rule: after the main traversal loop, do this:
if not iscallable(object) and url[-1] != "/":
return response.redirect(url + "/")
Or am I missing something?
BTW, I'm also +1 on the access/__getname__ fix. My bad. Oops.
Greg