Tom Cameron writes:
Does anybody know of a property or method that I should be looking for that absolute_url() might need to determine the correct Base? Following the code of the standard "absolute_url" (to be found in "OFS/Traversable"):
def absolute_url(self, relative=0): try: req = self.REQUEST except AttributeError: req = {} rpp = req.get('VirtualRootPhysicalPath', ('',)) spp = self.getPhysicalPath() i = 0 for name in rpp[:len(spp)]: if spp[i] == name: i = i + 1 else: break path = map(quote, spp[i:]) if relative: # This is useful for physical path relative to a VirtualRoot return join(path, '/') return join([req['SERVER_URL']] + req._script + path, '/') As you see, there are several possible reasons why you may get the physical path: * your object is unable to acquire "REQUEST" (because it is not (yet) acquisition wrapped) * the 'VirtualRootPhysicalPath' in "REQUEST" is wrong (not very likely) * the SERVER_URL or "_script" in "REQUEST" are wrong (not very likely) * you happen to access a non-standard "absolute_url" (use, e.g. "DocFinder", to check that). Dieter