Tridion 在2012 UI/XM中执行CMS预览与动态预览时检测问题

Tridion 在2012 UI/XM中执行CMS预览与动态预览时检测问题,tridion,tridion-2011,Tridion,Tridion 2011,我有一个模板代码(2011 SP1),它通过检查engine.RenderMode(即PreviewDynamic)来检测是否正在使用CMS预览。这将确保通常由应用服务器为发布的页面添加的内容(如CSS、JS、导航元素等)被注入到呈现的输出中,以便在CMS中预览效果良好 Tridion 2012 UI/XM为动态预览创建临时文件,结果表明,在发布这些文件时,渲染模式也是PreviewDynamic,这给了我一个问题,因为在实际发布页面时,我不想插入内容(在这种情况下,应用程序服务器通过.NET母

我有一个模板代码(2011 SP1),它通过检查
engine.RenderMode
(即
PreviewDynamic
)来检测是否正在使用CMS预览。这将确保通常由应用服务器为发布的页面添加的内容(如CSS、JS、导航元素等)被注入到呈现的输出中,以便在CMS中预览效果良好

Tridion 2012 UI/XM为动态预览创建临时文件,结果表明,在发布这些文件时,渲染模式也是
PreviewDynamic
,这给了我一个问题,因为在实际发布页面时,我不想插入内容(在这种情况下,应用程序服务器通过.NET母版页处理此问题)

查看.NET API中
RenderMode
的可能值,我们有
Publish
PreviewStatic
PreviewDynamic

因此,我的问题是:

  • 如何在模板代码中区分CMS预览和动态预览之间的区别
  • RenderMode
    PreviewStatic
    何时(如果有)
  • 我有一个部分解决方案(针对第一个问题)。如果您结合使用
    RenderMode
    引擎.PublishingContext.PublicationTarget
    可以检测CMS预览、动态预览和正常发布:

    • CMS预览-渲染模式:
      DynamicPreview
      PublicationTarget:null
    • 动态预览-渲染模式:
      DynamicPreview
      PublicationTarget:不为空
    • 正常发布-渲染模式:
      Publish
      PublicationTarget:不为空

    我仍然不确定什么时候使用PreviewStatic…?

    我已经检查过了,我找不到使用PreciveStatic的情况,我甚至检查了非复合模板,但仍然是PreviewDynamic。我将尝试解决这个问题。。。