fix: auto-resolve extensionless URLs by trying processor extensions

When url2file returns None for a path like /i18n_getmsgs, try appending
each registered processor extension (.dspy, .ui, .tmpl) to find a match.
This fixes bricks i18n.js requesting /i18n_getmsgs without .dspy suffix.
This commit is contained in:
yumoqing 2026-06-25 14:35:56 +08:00
parent d61f113500
commit 8eb9bc4676

View File

@ -364,6 +364,13 @@ class ProcessorResource(StaticResource,Url2File):
self.user = await auth.get_auth(request)
self.y_env.user = self.user
self.request_filename = self.url2file(str(request.path))
# Fallback: try adding processor extensions for extensionless URLs
if not self.request_filename:
for ext, _ in self.y_processors:
candidate = self.url2file(str(request.path) + ext)
if candidate:
self.request_filename = candidate
break
request['request_filename'] = self.request_filename
path = request.path
config = getConfig()