Would it be OK for you to change this expression (that's what we did on our sites) to :
python:'URL0' in request and 'configure_faceted.html' in request['URL0']
2020-05-30 04:26:14 ERROR plone.app.viewletmanager Error while rendering viewlet-manager=plone.htmlhead, viewlet=plone.resourceregistries
Traceback (most recent call last):
File "/Users/plone/.buildout/eggs/plone.app.viewletmanager-2.0.11-py2.7.egg/plone/app/viewletmanager/manager.py", line 112, in render
html.append(viewlet.render())
File "/Users/plone/.buildout/eggs/zope.browserpage-3.12.2-py2.7.egg/zope/browserpage/simpleviewclass.py", line 44, in __call__
return self.index(*args, **kw)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
return self.im_func(im_self, *args, **kw)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 59, in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/Users/plone/.buildout/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
File "/Users/plone/.buildout/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 240, in __call__
interpreter()
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 533, in do_optTag_tal
self.do_optTag(stuff)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 518, in do_optTag
return self.no_tag(start, program)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 513, in no_tag
self.interpret(program)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 531, in do_optTag_tal
self.no_tag(stuff[-2], stuff[-1])
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 513, in no_tag
self.interpret(program)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 742, in do_insertStructure_tal
structure = self.engine.evaluateStructure(expr)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/PageTemplates/Expressions.py", line 218, in evaluateStructure
text = super(ZopeContext, self).evaluateStructure(expr)
File "/Users/plone/.buildout/eggs/zope.tales-3.5.3-py2.7.egg/zope/tales/tales.py", line 696, in evaluate
return expression(self)
File "/Users/plone/.buildout/eggs/zope.contentprovider-3.7.2-py2.7.egg/zope/contentprovider/tales.py", line 80, in __call__
return provider.render()
File "/Users/plone/.buildout/eggs/zope.viewlet-3.7.2-py2.7.egg/zope/viewlet/manager.py", line 124, in render
return self.template(viewlets=self.viewlets)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
return self.im_func(im_self, *args, **kw)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 59, in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/Users/plone/.buildout/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
File "/Users/plone/.buildout/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 240, in __call__
interpreter()
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/Users/plone/.buildout/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py", line 819, in do_loop_tal
iterator = self.engine.setRepeat(name, expr)
File "/Users/plone/.buildout/eggs/zope.tales-3.5.3-py2.7.egg/zope/tales/tales.py", line 682, in setRepeat
expr = self.evaluate(expr)
File "/Users/plone/.buildout/eggs/zope.tales-3.5.3-py2.7.egg/zope/tales/tales.py", line 696, in evaluate
return expression(self)
File "/Users/plone/.buildout/eggs/zope.tales-3.5.3-py2.7.egg/zope/tales/expressions.py", line 217, in __call__
return self._eval(econtext)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/PageTemplates/Expressions.py", line 155, in _eval
return render(ob, econtext.vars)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/PageTemplates/Expressions.py", line 117, in render
ob = ob()
File "/Users/plone/.buildout/eggs/Products.ResourceRegistries-2.2.13-py2.7.egg/Products/ResourceRegistries/browser/styles.py", line 21, in styles
styles = registry.getEvaluatedResources(context)
File "/Users/plone/.buildout/eggs/Products.ResourceRegistries-2.2.13-py2.7.egg/Products/ResourceRegistries/tools/BaseRegistry.py", line 1054, in getEvaluatedResources
return [item for item in results if self.evaluate(item, context)]
File "/Users/plone/.buildout/eggs/Products.ResourceRegistries-2.2.13-py2.7.egg/Products/ResourceRegistries/tools/BaseRegistry.py", line 597, in evaluate
return self.evaluateExpression(item.getCookedExpression(), context)
File "/Users/plone/.buildout/eggs/Products.ResourceRegistries-2.2.13-py2.7.egg/Products/ResourceRegistries/tools/BaseRegistry.py", line 626, in evaluateExpression
return expression(ec)
File "/Users/plone/.buildout/eggs/Products.CMFCore-2.2.10-py2.7.egg/Products/CMFCore/Expression.py", line 47, in __call__
res = compiled(econtext)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/Products/PageTemplates/ZRPythonExpr.py", line 48, in __call__
return eval(self._code, vars, {})
File "PythonExpr", line 1, in <expression>
File "/Users/plone/.buildout/eggs/AccessControl-3.0.11-py2.7-macosx-10.13-x86_64.egg/AccessControl/ImplPython.py", line 675, in guarded_getattr
v = getattr(inst, name)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/ZPublisher/HTTPRequest.py", line 1380, in __getattr__
v = self.get(key, default, returnTaints=returnTaints)
File "/Users/plone/.buildout/eggs/Zope2-2.13.28-py2.7.egg/ZPublisher/HTTPRequest.py", line 1274, in get
path = [other['SERVER_URL']] + path[:n]
KeyError: 'SERVER_URL'
We had a problem with this expression in CSS / JS conditions :
python:'configure_faceted.html' in request.URL0We don't know exactly why, but we have edge cases where request is :
<HTTPRequest, URL=None>thus leading to :
KeyError: 'SERVER_URL'and the
plone.resourceregistriesfailing to display, resulting in an unstyled website.Would it be OK for you to change this expression (that's what we did on our sites) to :
python:'URL0' in request and 'configure_faceted.html' in request['URL0']Thanks for your feedback !
Full related traceback :