空响应从纸盒流。
默认纸盒会缓冲和重写网页HTML输出。这允许部分视图在已呈现<head>
标记后插入<link>
引用样式表的标签。重写功能被调用为PostRequestHandlerExecute
事件处理程序。
空响应流,你所看到的是作为已被重写没有被刷新输出流的结果。针对此问题的解决方法是刷新输出流时关闭的呼吁Cassette.AspNet.PlaceholderReplacingResponseFilter
类,这是如下图所示:
void WriteUncompressedOutput()
{
var output = GetOutputWithPlaceholdersReplaced(bufferStream);
var outputBytes = outputEncoding.GetBytes(output);
if (outputBytes.Length > 0)
{
outputStream.Write(outputBytes, 0, outputBytes.Length);
outputStream.Flush();
}
}
如果您不需要重写功能的解决办法,现在是可用的。只是禁用纸盒HTML重写功能,无论是在web.config
:
<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。
Cassette怎么没有和Sitecore一起工作? –
@StephenPope增加了问题的细节。 – al3xnull
我们获得了Cassette与Sitecore一起工作,但是执行此操作的步骤尚未记录。其中一个主要问题是如果请求有与之关联的路由数据('_cassette'),则中止请求管道,这需要定制[小型]处理器。 – kamranicus