fix: auto-resolve extensionless URLs to processor files
Two changes: 1. processorResource._handle: when url2file returns None, try appending each processor extension (.dspy, .ui, .tmpl) to find a match. After finding a processor, override its real_path if fallback was used. 2. baseProcessor.set_run_env: only recalculate real_path if not already set, preserving the fallback value from processorResource. Fixes bricks i18n.js requesting /i18n_getmsgs without .dspy suffix.
This commit is contained in:
parent
8eb9bc4676
commit
7a297e98df
@ -68,7 +68,9 @@ class BaseProcessor:
|
|||||||
if self.env_set:
|
if self.env_set:
|
||||||
self.run_ns['params_kw'].update(params)
|
self.run_ns['params_kw'].update(params)
|
||||||
return
|
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()
|
g = ServerEnv()
|
||||||
self.run_ns = DictObject()
|
self.run_ns = DictObject()
|
||||||
self.run_ns.update(g)
|
self.run_ns.update(g)
|
||||||
|
|||||||
@ -377,6 +377,9 @@ class ProcessorResource(StaticResource,Url2File):
|
|||||||
request['port'] = config.website.port
|
request['port'] = config.website.port
|
||||||
processor = self.url2processor(request, str(request.url), self.request_filename)
|
processor = self.url2processor(request, str(request.url), self.request_filename)
|
||||||
if processor:
|
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)
|
ret = await processor.handle(request)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user