[Zope] Hmm weird!
Sam Gendler
sgendler@akamai.com
Mon, 19 Mar 2001 10:21:31 -0800
This one is simple. When a browser sees a relative URL (which is what you have
in your href field in the dtml source, since it doesn't start with a '/'
character), it has to construct a link based on the current URL. The first
example, since the current URL does not end in a slash, is assumed to be the
content of a FILE called 'test', in a directory called '/'. When it constructs
the relatvie url, it appends the new filename to the end of the current
DIRECTORY, removing the 'test' element. The second example has a slash at the
end, so the current file is considered to be the default content in the
directory called '/test/'. The relative url is then constructed within the
'/test/' directory, so the new filename is appended to '/test/'. That is why
you are getting two separate URLs.
Use an absolute url in your link. On most webservers, this wouldn't work, since
a single address can not usually be addressed as both a file and a directory.
In your first example with apache, apache would redirect the browser to the
correct form, with the final slash, if it was a directory. If it was a file,
the second example would result in an error. With Zope, acquisition makes it
possible for the thing to work either way, although not with correct results.
--sam
Phil Harris wrote:
> Sorry for the obtuse subject but, let's see if I can explain, and let's see
> if other people are seeing this:
>
> I've got this DTML page:
>
> <html><body>
> <h2><dtml-var title_or_id></h2>
> <a href="index_html">click here to refresh</a>
> </body>
> </html>
>
> OK looks fine, but the interesting bit is the anchor at the bottom.
>
> Depending on the URL typed into the browser address bar I get different
> results (but I think they should be the same results).
>
> If I put http://localhost:12380/test I get this result:
>
> <html><body>
> <h2>index_html</h2>
> <a href="index_html">click here to refresh</a>
> </body>
> </html>
>
> Notice the address in the anchor it looks ok, but
>
> If I put http://localhost:12380/test/ into the address bar I get:
>
> <html><body>
> <h2>index_html</h2>
> <a href="index_html">click here to refresh</a>
> </body>
> </html>
>
> Which I have to admit looks identical, *BUT* the anchor takes you to
> different addresses.
>
> The first one takes you to the index_html in the root, the second one takes
> you to the index_html in the test folder as it should.
>
> If anyone can understand what I'm going on about and if then any of you have
> any ideas, *please* let me know.
>
> I'm not sure if this is a Zope problem (I don't really see how it could be
> since the address is the same), or if it's a browser problem. However I'm
> dead confused here.
>
> I can't publish the real address for you top verify this, your going to have
> to believe me or test it yourself.
>
> tia
>
> Phil
> phil.harris@zweb.co.uk
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )