gpt4 book ai didi

javascript - Sitecore Javascript 压缩/缩小和 LESS 编译

转载 作者:行者123 更新时间:2023-11-30 13:18:41 25 4
gpt4 key购买 nike

目前,我一直在尝试将 Cassette 放入我们的 Sitecore 项目中,但它完全失败了。我已经在项目中使用了 dotLess,但想要一个更可靠的解决方案来解决捆绑时的缓存清除问题。

我可以在普通的 .Net4 项目中使用 Cassette,但无法在我们的 Sitecore 项目中使用它。 (Ed) 我们无法让它实际构建任何类型的包(选中 /_cassette)并且它没有向页面输出任何内容。对于我们来说,该项目并未构建,而是使用了 CodeFile,我不确定这是否是问题的一部分。一般来说,无论我们尝试什么,我们都会不断收到 No bundle with path 'xxx' 异常。这是一个无赖,因为我真的不介意将 CoffeeScript 编织到解决方案中。

是否有压缩/缩小 javascript 并可以使用 Sitecore 呈现无点文件的解决方案?

最佳答案

在任何 Sitecore 客户端界面中工作时来自 Cassette 的空响应流是由 rewriteHtml 引起的它实现的功能。

默认情况下,Cassette 将缓冲和重写页面 HTML 输出。这允许部分 View 插入 <link><head> 之后引用样式表的标签标记已呈现。重写功能被调用为 PostRequestHandlerExecute事件处理程序。

您看到的空响应流是由于已重写的输出流未被刷新所致。此问题的解决方法是在 Cassette.AspNet.PlaceholderReplacingResponseFilter 上调用 Close 时刷新输出流类,如下所示:

    void WriteUncompressedOutput()
{
var output = GetOutputWithPlaceholdersReplaced(bufferStream);
var outputBytes = outputEncoding.GetBytes(output);
if (outputBytes.Length > 0)
{
outputStream.Write(outputBytes, 0, outputBytes.Length);
outputStream.Flush();
}
}

如果您不需要重写功能,现在可以使用解决方法。只需在 web.config 中禁用 Cassette HTML 重写功能即可:

<configuration>
<configSections>
....
<section name="cassette" type="Cassette.CassetteConfigurationSection, Cassette"/>
</configSections>
<cassette rewriteHtml="false"/>

或在代码中:

public class CassetteSettingsConfiguration : IConfiguration<CassetteSettings>
{
public void Configure(CassetteSettings configurable)
{
configurable.IsHtmlRewritingEnabled = false;
}
}

此信息包含在我关于 using Cassette with Sitecore 的博文中.

关于javascript - Sitecore Javascript 压缩/缩小和 LESS 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com