如果我有一个组件 A,它有一个到组件 B 的多媒体链接。当我使用动态 CT 发布组件 A 时,组件 B 也将被发布。
这不是真的。要发布多媒体链接,您必须使用要发布的多媒体链接<img src="tcmid" ..... />
,并且您的 CT 需要Default Finish Actions
包含Publish Binaries in package
.
通常,当您发布组件 A 时,它只会发布多媒体文件(img、jpg、pdf 等),前提是您的 DWT 中有上述代码行并且您有上述 TBB。
Q #1:在这种情况下,元数据不会被发布,因为您只是通过代码发布多媒体文件
Q # 2:如果组件 A 正在被使用或引用,当您取消发布组件 A 时,不会取消发布多媒体文件。Tridion Deployer 检查是否有对多媒体文件的任何引用,只有在没有任何引用时才删除该文件。
Q #3:发布到数据库或文件系统不仅仅是基于简单的动态CT。它基于部署者端的存储配置。它基于您在存储中配置到 db DB 或 FS 的内容。
如果您想动态发布多媒体组件,您需要一个与该多媒体模式 (OR) 关联的动态 CT 您可以编写一个 C# TBB 作为组件 A 的动态 CT 的一部分,并通过代码动态发布。
这是您也可以查看的 Tridion 文档,可能不是您问题的直接答案,但会提供一些附加信息。
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_56BCD7B2A1994C76B940751B2458D8E0