如何将资源注册表资源迁移到 Plone 5
How to migrate resources registry resources to Plone 5
我有一个附加组件 (collective.lazysizes),它使用以下 jsregistry.xml
文件将一些 JavaScript 资源包含到 Plone 4 资源注册表中:
<?xml version="1.0"?>
<object name="portal_javascripts">
<javascript id="++resource++collective.lazysizes/ls.respimg.min.js"
cacheable="True" compression="none" cookable="True" enabled="True"
expression="" inline="False" />
<javascript id="++resource++collective.lazysizes/lazysizes.min.js"
cacheable="True" compression="none" cookable="True" enabled="True"
expression="" inline="False" />
</object>
如何在 registry.xml
中将其转换为 Plone 5 包?我必须将脚本合并到一个文件中吗?如何?我必须在捆绑包中添加 resources
密钥吗?它应该包含什么?超过一个 CSS 资源怎么办?
我发现 documentation 复杂,有时自相矛盾,对此不是很清楚。
这是我会做的:
将所有 JS 放在一个文件中(例如名为 lazysizes-bundle.js)。它可以由 copy/pasting 他们手动完成(我们也可以使用 npm 和 gulp,在 package.json 中声明我们的 JS 依赖项并自动生成这个包,但在这种情况下,这只是 2文件,这可能有点矫枉过正),
在 registry.xml
中声明此捆绑包:
<records prefix="plone.bundles/lazysizes"
interface='Products.CMFPlone.interfaces.IBundleRegistry'>
<value key="enabled">True</value>
<value key="jscompilation">++resource++collective.lazysizes/lazysizes-bundle.js</value>
<value key="last_compilation">2016-01-01 00:00:00</value>
<value key="compile">False</value>
<value key="depends">plone</value>
</records>
我们将 compile
设置为 False,这样 Plone 就不会尝试生成这个包,所以我们手动生成的包会被保留。
备注:
你是对的,文档现在还不清楚,但是这个分支很快就会合并https://github.com/plone/documentation/commits/resource_registry_doc_improvements,到时候会好很多。
如您所见,每个附加组件都会带来自己的捆绑包,但它们可以合并到元捆绑包中(参见 github.com/plone/Products.CMFPlone/issues/1277这将是 5.0.3)
的一部分
我有一个附加组件 (collective.lazysizes),它使用以下 jsregistry.xml
文件将一些 JavaScript 资源包含到 Plone 4 资源注册表中:
<?xml version="1.0"?>
<object name="portal_javascripts">
<javascript id="++resource++collective.lazysizes/ls.respimg.min.js"
cacheable="True" compression="none" cookable="True" enabled="True"
expression="" inline="False" />
<javascript id="++resource++collective.lazysizes/lazysizes.min.js"
cacheable="True" compression="none" cookable="True" enabled="True"
expression="" inline="False" />
</object>
如何在 registry.xml
中将其转换为 Plone 5 包?我必须将脚本合并到一个文件中吗?如何?我必须在捆绑包中添加 resources
密钥吗?它应该包含什么?超过一个 CSS 资源怎么办?
我发现 documentation 复杂,有时自相矛盾,对此不是很清楚。
这是我会做的:
将所有 JS 放在一个文件中(例如名为 lazysizes-bundle.js)。它可以由 copy/pasting 他们手动完成(我们也可以使用 npm 和 gulp,在 package.json 中声明我们的 JS 依赖项并自动生成这个包,但在这种情况下,这只是 2文件,这可能有点矫枉过正),
在
registry.xml
中声明此捆绑包:
<records prefix="plone.bundles/lazysizes"
interface='Products.CMFPlone.interfaces.IBundleRegistry'>
<value key="enabled">True</value>
<value key="jscompilation">++resource++collective.lazysizes/lazysizes-bundle.js</value>
<value key="last_compilation">2016-01-01 00:00:00</value>
<value key="compile">False</value>
<value key="depends">plone</value>
</records>
我们将 compile
设置为 False,这样 Plone 就不会尝试生成这个包,所以我们手动生成的包会被保留。
备注:
你是对的,文档现在还不清楚,但是这个分支很快就会合并https://github.com/plone/documentation/commits/resource_registry_doc_improvements,到时候会好很多。
如您所见,每个附加组件都会带来自己的捆绑包,但它们可以合并到元捆绑包中(参见 github.com/plone/Products.CMFPlone/issues/1277这将是 5.0.3)
的一部分