Ian Bicking wrote at 2003-11-25 12:33 -0600:
I'm having a problem with LocalFS, HTML files, and the <base href> that gets added to pages. But I feel, at its source, Zope is just being nuts.
HTTPResponse.insertBase inserts <base href> to pages; in turn, this base is set in HTTPResponse.setBase, where it ensures that the base always ends in "/". This causes paths to grow, as leaf pages (non-directory pages) get treated like directories. This is annoying in normal Zope objects, but LocalFS objects don't seem to acquire parents, so the extra elements in the URL that point to a LocalFS are just broken.
Many people do not like the Zope generated "base" tags. But, in fact, they are necessary in order for relative URL references to work. Zope *MUST* set the base tag whenever it implicitly modifies the URL. Otherwise, the base URL assumed by the browser is different from the real base URL of the request -- relative URL references will fail. The problem is not Zope's "base" tag. The problem are non-trivial relative URL references (an relative URL reference containing at most one "/" -- you must count implicit addition of "/index_html" done by Zope as well). To avoid incresing URLs you must avoid non-trivial URL references, either by strictly using absolute URLs or by using sufficiently many "../" in your relative URL references. -- Dieter