加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Tridion 2011:在发布页面的文件名时更改

发布时间:2020-12-15 06:45:21 所属栏目:百科 来源:网络整理
导读:美好的一天! 我允许我的内容编辑器将CSS作为非常基本的组件(通常包含一个名为“代码”的单行多行字段),然后将其作为组件呈现添加到具有.css文件扩展名的页面中.创建页面时,用户可以设置一些配置值:minify输出(bool),文件名前缀和文件名后缀.最后两个的意图
美好的一天!

我允许我的内容编辑器将CSS作为非常基本的组件(通常包含一个名为“代码”的单行多行字段),然后将其作为组件呈现添加到具有.css文件扩展名的页面中.创建页面时,用户可以设置一些配置值:minify输出(bool),文件名前缀和文件名后缀.最后两个的意图是,如果用户选择在出门的时候将CSS缩小,则文件名可能不同于坐在演示服务器上.

除了修改文件名之外,我有一切工作.我不想在CM中更改文件名;只在它驻留在演示服务器上.我认为这可以在放置在CSS页面模板中的TBB中完成.我对此进行了一次裂缝,但是想确保我没有丢失任何东西.以下示例仅仅是为了简洁而硬编码的一些可配置值的简写.

// Create a reference to the Page object in the package.
Page page = this.GetPage();

// Retrieve a reference to the page's file name.
string currentFileName = Utilities.GetFilename(page.FileName);

// Set the published file name on its way out the door.
page.FileName = currentFileName + "_min";

// ???
// Profit.

解决方法

阅读您对@ Dylan的回应的答案,您可能会考虑在发布时创建一个包含最小化代码输出的二进制变量.

在最简单的形式中,您将创建一个带有页面输出的文本文件,然后调用.AddBinary()指定文件的内容,文件名,变体名称(我建议使用该页面的URI),URI的当前StructureGroup和组件的URI绑定(也可能是页面上的组件).

您可以在Mihai的博客here上看到一些二进制变体示例

Binary binary = m_Engine.PublishingContext.RenderedItem.AddBinary(
    resizedStream,newFilename,variantId,mmc,binaryContent.MultimediaType.MimeType);

除了实际页面之外,还将发布包含页面输出的文件.当您取消发布该页面时,您也将取消发布额外的文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读