Sitecore,阻止重定向响应的HTML缓存

Sitecore,阻止重定向响应的HTML缓存,sitecore,Sitecore,我有一个页面,在4秒钟后必须重定向到另一个URL(基本上如果后端服务需要很长时间才能响应)。我正在执行302重定向,但Sitecore正在存储响应HTML,下次我进入页面时,会得到一个“对象移动到此处”呈现 如何防止重定向响应的HTML缓存(服务器端缓存,而不是浏览器缓存)?我正在使用“返回重定向(url);”进行重定向 谢谢HTML缓存存储整个HTML输出。如果需要根据某些自定义逻辑改变输出,则需要进行自定义以使其正常工作。根据您的需要,有几种不同的选择。我在使用选项2时遇到了完全相同的问题,

我有一个页面,在4秒钟后必须重定向到另一个URL(基本上如果后端服务需要很长时间才能响应)。我正在执行302重定向,但Sitecore正在存储响应HTML,下次我进入页面时,会得到一个“对象移动到此处”呈现

如何防止重定向响应的HTML缓存(服务器端缓存,而不是浏览器缓存)?我正在使用“返回重定向(url);”进行重定向


谢谢

HTML缓存存储整个HTML输出。如果需要根据某些自定义逻辑改变输出,则需要进行自定义以使其正常工作。根据您的需要,有几种不同的选择。我在使用选项2时遇到了完全相同的问题,但正确的解决方案实际上取决于您的应用程序

  • 删除超时,使HTML始终保持不变
  • 调用后端服务客户端或在Sitecore中创建一个单独的服务,该服务调用后端服务以避免其包含在输出缓存中
  • 创建自定义缓存密钥管道,以便创建不同的缓存密钥 如果后端服务花费的时间太长,请参见

  • HTML缓存存储整个HTML输出。如果需要根据某些自定义逻辑改变输出,则需要进行自定义以使其正常工作。根据您的需要,有几种不同的选择。我在使用选项2时遇到了完全相同的问题,但正确的解决方案实际上取决于您的应用程序

  • 删除超时,使HTML始终保持不变
  • 调用后端服务客户端或在Sitecore中创建一个单独的服务,该服务调用后端服务以避免其包含在输出缓存中
  • 创建自定义缓存密钥管道,以便创建不同的缓存密钥 如果后端服务花费的时间太长,请参见

  • 302在某些浏览器中存在问题。使用较新的307“临时重定向”

    您可以通过设置标头来防止缓存:

    "Cache-Control: no-cache, no-store, must-revalidate"
    "Pragma: no-cache"
    "Expires: 0"
    

    302在某些浏览器中存在问题。使用较新的307“临时重定向”

    您可以通过设置标头来防止缓存:

    "Cache-Control: no-cache, no-store, must-revalidate"
    "Pragma: no-cache"
    "Expires: 0"
    

    您是否尝试在站点配置中将disableBrowserCaching设置为true,以查看问题是否与缓存有关?关闭HTML缓存后,问题停止出现。我说的不是browserCaching,而是Sitecore HTML缓存(在服务器端)。当您将disableBrowserCaching设置为false时,整个页面将被缓存。这就是为什么将此设置为true解决了您的问题。设置为true并不能解决我的问题,网站已设置为true。解决我的问题的方法是在服务器端禁用HTML缓存,我不想这样做,因为我想缓存200个响应(而不是302个临时响应)。您是否有处理器执行URL重写或重定向到缓存其他状态代码的位置?例如200、404等?您是否尝试在站点配置中将disableBrowserCaching设置为true,以查看问题是否与缓存有关?关闭HTML缓存,问题停止出现。我说的不是browserCaching,而是Sitecore HTML缓存(在服务器端)。当您将disableBrowserCaching设置为false时,整个页面将被缓存。这就是为什么将此设置为true解决了您的问题。设置为true并不能解决我的问题,网站已设置为true。解决我的问题的方法是在服务器端禁用HTML缓存,我不想这样做,因为我想缓存200个响应(而不是302个临时响应)。您是否有处理器执行URL重写或重定向到缓存其他状态代码的位置?例如200、404等等?