1

我使用 id 注册的所有 JS++theme++mythemename/js/myscript.js都给我以下错误portal_javascripts(resource not found or not accessible)

我知道 id 是正确的,因为我可以访问localhost/mysite/++theme++mythemename/js/myscript.js(即使 Diazo 被禁用)。

如果在开发模式下,资源将在最终 HTML 上交付。然而,在生产模式下,烹饪过程会默默地失败。或者差不多。除了获得与 上显示的缓存键不同的缓存键外portal_javascripts/manage_jsComposition,我通过访问熟文件看到以下错误消息:

/* XXX ERROR -- access to '++theme++mythemename/js/myscript.js' not authorized */

关于如何处理这些的任何提示?或者我真的需要让它们生吃吗?

4

2 回答 2

2

您是否尝试过 browser:resourceDirectory 而不是 plone:static ?

 <browser:resourceDirectory
    name="yourJsFolder"
    directory="yourJsFolder"
    layer=".interfaces.IThemeSpecific"
    />

并使用以下命令调用您的 js:

++resource++yourJsFolder/yourJsFile.js

于 2013-09-23T07:08:31.227 回答
0

我将您的observatorio.tema包添加到现有的 plone 4.1 构建中,并向 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 在内部是一个 resourceDirectory ,应该和确实与资源注册表一起工作。

也许您的构建中还有一些其他代码可以为同名(observatorio)重新注册另一个(空)目录?

于 2013-09-24T11:38:29.750 回答