Tridion 如何在自定义页面部署器中访问转换后的html页面?

Tridion 如何在自定义页面部署器中访问转换后的html页面?,tridion,tridion2009,tridion-content-delivery,Tridion,Tridion2009,Tridion Content Delivery,假设我们必须在自定义部署器中访问已发布页面的内容。 这部分代码位于processPage方法内部,该方法位于扩展PageDeploy类的CustomModule中 这样,我将获得正在发布的页面,但该页面的内容不会被转换(该页面中的组件不会被呈现) 如果我知道可以通过将清除更改为false来禁用cd_deployer.conf.xml中TransportPackages的清除:, 我看到Tridion生成了我的页面的两个版本: root\page.html(具有未渲染内容,路径为pageFile.

假设我们必须在自定义部署器中访问已发布页面的内容。 这部分代码位于processPage方法内部,该方法位于扩展PageDeploy类的CustomModule中

这样,我将获得正在发布的页面,但该页面的内容不会被转换(该页面中的组件不会被呈现)

如果我知道可以通过将清除更改为false来禁用cd_deployer.conf.xml中TransportPackages的清除:
我看到Tridion生成了我的页面的两个版本:

  • root\page.html(具有未渲染内容,路径为pageFile.ToString())
  • root\transformed\page.html(具有完整内容-我想要的内容)
  • 为什么当我用转换后的页面文件路径创建新文件并读取它时,我得到的html代码的内容甚至比原始html更少?这是因为在部署页面的这一阶段仍然没有呈现和完成,还是


    谢谢

    您的页面是否使用动态组件演示文稿?如果是这样,发布和部署的页面级HTML将只包含组件表示的“include指令”

    <tcdl:ComponentPresentation ... />
    
    
    
    在部署过程中发生的唯一一件事是,发布/传输过程中使用的“技术不可知”语言被转换为JSP标记或ASP.NET服务器控件包含,在这两种情况下,它通常被转换为以
    tridion:ComponentPresentation
    开头的内容

    动态组件表示本身的HTML片段将单独发布,并作为单独的项存储在配置的存储器中

    完整的HTML只有在页面被请求时才会被合成(为访问者服务)。在此阶段,将调用JSP标记库或ASP.NET服务器控件,从存储器中读取组件表示的HTML片段,并将其注入页面的HTML“线框”


    有了这些知识,它确实解释了为什么在Deployer扩展中找不到动态组件表示的HTML片段:只有在请求页面时,才将DCP片段合并到页面外壳中,而不是在部署页面时。是的,它使用动态组件表示,这正是我所需要的。虽然我理解了你所说的,但是当我将Cleanup设置为false时,仍然有点不清楚为什么页面在\transformed\文件夹中是完整的(没有包含说明和生成的内容)?如果你使用的是DCPs,那么HTML就不存在了。但无论哪种方式:您都在查看那里的临时文件,我建议您不要这样做。只要看看写进经纪人的内容,它应该与我上面所说的相符。
    <tcdl:ComponentPresentation ... />