我使用++theme++mythemename/js/myscript.js
等ID注册的所有JS都会在portal_javascripts
上给出以下错误: (resource not found or not accessible)
我知道ID是正确的,因为我可以访问localhost/mysite/++theme++mythemename/js/myscript.js
(即使Diazo被禁用)。
如果开发模式已开启,则资源将在最终HTML上传递。然而,在生产模式下,烹饪过程无声地失败。或差不多。获取与portal_javascripts/manage_jsComposition
上显示的缓存密钥不同的缓存密钥,我通过访问cooked文件看到以下错误消息:
/* XXX ERROR -- access to '++theme++mythemename/js/myscript.js' not authorized */
有关如何处理这些问题的任何提示?或者我真的需要将它们留下来吗?
答案 0 :(得分:2)
您是否尝试过浏览器:resourceDirectory而不是plone:static?
<browser:resourceDirectory
name="yourJsFolder"
directory="yourJsFolder"
layer=".interfaces.IThemeSpecific"
/>
并用以下方式调用你的js:
++ ++资源yourJsFolder / yourJsFile.js
答案 1 :(得分:0)
我将你的observatorio.tema包添加到现有的plone 4.1 buildout中,并将一个随机的js文件添加到js注册表中(位于collapsibleformfields.js之后,以便正确熟化)
GS导出如下:
<javascript authenticated="False" cacheable="True" compression="safe"
conditionalcomment="" cookable="True" enabled="True" expression=""
id="++theme++observatorio/js/ui.js" inline="False" insert-after="collapsibleformfields.js"/>
portal_jacascripts中没有错误,javascript文件包含在/jquery-cachekey-e7bee35d43da7a91eb29c6586dcbd396.js
你是否为测试目的添加了cacheable =“False”和cookable =“False”? https://github.com/observatoriogenero/observatorio.tema/blob/master/src/observatorio/tema/profiles/default/jsregistry.xml#L373
因为plone:static internal是一个resourceDirectory,它应该和资源注册表一起工作。
也许在你的buildout中有一些其他代码重新注册同名的另一个(空)目录(observatorio)?