Sitecore Javascript压缩/缩小和更少的编译

Sitecore Javascript压缩/缩小和更少的编译,javascript,sitecore,sitecore6,assets,dotless,Javascript,Sitecore,Sitecore6,Assets,Dotless,目前,我一直在尝试将盒式磁带放入我们的Sitecore项目中,但它的正面却一塌糊涂。我已经在这个项目中使用了dotLess,但是我希望在绑定时能够有一个更可靠的解决方案来破坏缓存 我可以在一个普通的.Net4项目中使用卡带,但就是不能在我们的Sitecore项目中使用它。(Ed)我们无法让它实际构建任何类型的包(选中/\u caste),并且它没有向页面输出任何内容。对我们来说,这个项目并不是构建的,而是使用代码文件,我不确定这是否是问题的一部分。总的来说,不管我们做了什么尝试,我们总是得到路径

目前,我一直在尝试将盒式磁带放入我们的Sitecore项目中,但它的正面却一塌糊涂。我已经在这个项目中使用了dotLess,但是我希望在绑定时能够有一个更可靠的解决方案来破坏缓存

我可以在一个普通的.Net4项目中使用卡带,但就是不能在我们的Sitecore项目中使用它。(Ed)我们无法让它实际构建任何类型的包(选中
/\u caste
),并且它没有向页面输出任何内容。对我们来说,这个项目并不是构建的,而是使用代码文件,我不确定这是否是问题的一部分。总的来说,不管我们做了什么尝试,我们总是得到路径为“xxx”的
No bundle
异常。这让我很沮丧,因为我真的不介意在解决方案中加入咖啡脚本


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

我们最终让
SquishIt
工作起来相当轻松,除了让javascript文件能够很好地一起播放之外,没有太多麻烦。

在任何一个Sitecore客户端接口是由其实现的
重写HTML
功能引起的

默认情况下,磁带将缓冲和重写页面HTML输出。这允许局部视图在呈现
标记后插入引用样式表的
标记。重写功能作为
PostRequestHandlerExecute
事件处理程序调用


您看到的空响应流是已重写的输出流未刷新的结果。解决此问题的一个方法是在
CASEX.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
中禁用盒式磁带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;
    }
}
公共类磁带设置配置:ICO配置
{
public void Configure(盒式磁带设置可配置)
{
configurable.ishtmlrewriteingEnabled=false;
}
}

此信息包含在我的博客文章中。

为什么磁带不能与Sitecore配合使用?@Stephenppe为问题添加了详细信息。我们使用Sitecore制作了磁带,但操作步骤尚未记录。其中一个主要问题是,如果请求有与之相关联的路由数据(
\u CASE
),则中止请求管道,这需要一个自定义的[小型]处理器。@subkamran如果您愿意共享,我很高兴看到处理器。我很想尝试CASE的依赖项/引用解析。@al3xnull,一旦我有一个本地Sitecore实例启动并运行,我想自己尝试并实现它。是一个同事干的,所以我得问问他是否记得他所做的一切。我只有一个机会去探询一下消息来源,自己去弄清楚。我记得他们(网站)在缓存方面有问题,因为磁带资产没有通过缓存头发送。我不知道结果如何,但我们使用了Fx35分支,现在终于可以使用Fx40了。谢谢!这使我省去了很多悲伤。我在sitecore中搜索空白屏幕,或者在sitecore中搜索死亡的白色屏幕,但没有运气。最后把范围缩小到磁带,这篇文章救了我。希望您的请求很快被合并到主回购协议中。