如何将子版或其他出版物的发布dcp设置为不同的位置,而不会覆盖所有其他设置

chi*_*iku 8 tridion tridion-content-delivery tridion-2011 tridion-storage-extension

我正在尝试配置cd_storage并在设置动态组件表示时遇到问题,因为它们已经由子进程编写并从每个发布发布到同一文件夹.

我知道我们可以定义发布级别设置但是一旦我们定义了它,那么它希望我们定义该发布标记内的所有内容.我们不希望在发布标记中定义每个东西50次.

任何人都可以提出相同的最佳做法.

这是针对sdl tridion 2011 sp1

提前致谢...

Dan*_*agu 8

您的问题在于如何为存储ComponentPresentations的存储定义存储配置.存储的定义中有一个标志,它确实设置了这种类型的行为:defaultFilesystem.您可能已将其设置为false导致所有发布中的所有ComponentPresentations都存储在同一位置.通过设置此标志,true您将获得存储在不同位置的不同出版物的ComponentPresentations.我将举例说明如何在cd_storage_conf.xml中工作:

<Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultCPs" defaultFilesystem="true">
        <Root Path="c:\temp\cpRoot" />
</Storage>
....
<ItemTypes defaultStorageId="defaultFile" cached="true">
    <Item typeMapping="ComponentPresentation" itemExtension=".jsp" storageId="defaultCPs"/>
....
Run Code Online (Sandbox Code Playgroud)

这非常容易维护,并且会使Broker将ComponentPresentations存储到以下位置:( c:\temp\cpRoot\pub109\dcp\jsp\***我在这里publicationId=109).

希望这可以帮助.

  • 虽然您可以通过部署者将dcp动态推送到公共位置,但您需要在网站或webapp的上下文中小心使用它们.对于J2EE,如果dcps(jsp)不是webapp docroot的一部分,那么大多数应用服务器都不会呈现它们.对于IIS也是如此,如果.ascx不是app_usercontrols下的docroot的一部分或者类似,那么你也无法渲染它们.总而言之,您只是将它们发布到某个位置,但您无法在任何网站中使用它们(您可能也会遇到错误). (2认同)