diff --git a/ahserver/baseProcessor.py b/ahserver/baseProcessor.py index 08bc7e4..26cc12b 100644 --- a/ahserver/baseProcessor.py +++ b/ahserver/baseProcessor.py @@ -68,7 +68,9 @@ class BaseProcessor: if self.env_set: self.run_ns['params_kw'].update(params) return - self.real_path = self.resource.url2file(request.path) + # Only calculate real_path if not already set (e.g., by fallback in _handle) + if not hasattr(self, 'real_path') or self.real_path is None: + self.real_path = self.resource.url2file(request.path) g = ServerEnv() self.run_ns = DictObject() self.run_ns.update(g) diff --git a/ahserver/processorResource.py b/ahserver/processorResource.py index 6b25850..8a939f7 100644 --- a/ahserver/processorResource.py +++ b/ahserver/processorResource.py @@ -377,6 +377,9 @@ class ProcessorResource(StaticResource,Url2File): request['port'] = config.website.port processor = self.url2processor(request, str(request.url), self.request_filename) if processor: + # Fix real_path when fallback added an extension + if self.request_filename and (not hasattr(processor, 'real_path') or not processor.real_path): + processor.real_path = self.request_filename ret = await processor.handle(request) return ret