I have been experiencing a problem with relative URLs. If I have a folder 'myFolder' and the user enters the address [mysite]/myFolder, they are automatically redirected to [mysite]/myFolder/index_html, but their browser does not realise this. So if I have a relative link in the page <a href="somefile"> which is intended to point at /myFolder/somefile, the browser, thinking it is reading a _file_ called 'myFolder' in the root folder, then requests /somefile, not /myFolder/somefile, and Zope quite rightly replies that it doesn't exist. How do I get round this one? For ordinary links it can be fixed with a <base> tag whose href is set to absolute_url(), but this isn't respected by JavaScript window.location.href="" statements. The only solution I have found so far is for index_html to do a RESPONSE.redirect to a different file, whose URL is then right, but this is grungy. Does anyone have any better ideas? David
I've had this problem and only just now come up with a solution. Unforunately, I don't have time to implement real code, so you'll have to muddle through my pseudo-code suggestions. If done correctly, you could throw this in the root of your site and then just place all your main content in main_html. Create an index_html python script that looks like this: if traverse_subpath[-1] == 'index_html': return call_in_context main_html else: redirect traverse_subpath+'index_html'.to_string() Yeah, I know it isn't close to right but I'm terribly busy right now. Hopefully someone has a better (working) suggestion. Good luck. Share if you find a solution.
-----Original Message----- From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of DA Loeffler Sent: Tuesday, August 06, 2002 3:46 AM To: zope@zope.org Subject: [Zope] URLs and /
I have been experiencing a problem with relative URLs.
If I have a folder 'myFolder' and the user enters the address [mysite]/myFolder, they are automatically redirected to [mysite]/myFolder/index_html, but their browser does not realise this. So if I have a relative link in the page <a href="somefile"> which is intended to point at /myFolder/somefile, the browser, thinking it is reading a _file_ called 'myFolder' in the root folder, then requests /somefile, not /myFolder/somefile, and Zope quite rightly replies that it doesn't exist.
How do I get round this one? For ordinary links it can be fixed with a <base> tag whose href is set to absolute_url(), but this isn't respected by JavaScript window.location.href="" statements. The only solution I have found so far is for index_html to do a RESPONSE.redirect to a different file, whose URL is then right, but this is grungy. Does anyone have any better ideas?
David
_______________________________________________ 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 )
DA Loeffler writes:
If I have a folder 'myFolder' and the user enters the address [mysite]/myFolder, they are automatically redirected to [mysite]/myFolder/index_html, but their browser does not realise this. Usually, Zope adds a "base" tag to the result page when it modifies the URL.
Please search the mailing list archives (for "base tag") to learn, when Zope cannot set the base tag. Dieter
participants (3)
-
Charlie Reiman -
DA Loeffler -
Dieter Maurer