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,6 +68,8 @@ class BaseProcessor:
|
||||
if self.env_set:
|
||||
self.run_ns['params_kw'].update(params)
|
||||
return
|
||||
# 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()
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user