You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 News插件首次调用sys_category图片时IMG_RESOURCE报错

问题修复:TYPO3 News分类页面侧边栏图片加载异常

问题核心原因

该问题由TYPO3页面缓存机制导致:通过链接进入页面时,系统调用预生成的缓存页面,但缓存生成时未将tx_news_pi1|overwriteDemand|categories这个GP参数作为缓存变体的区分标识,导致缓存页面中lib.catImg的内容未被正确渲染;强制刷新会绕过缓存重新生成页面,因此能正常显示。

修复方案

方案1:添加缓存变体(推荐,不影响性能)

在页面TypoScript配置中,为当前页面添加基于分类参数的缓存变体,让不同分类的页面生成独立缓存版本:

# 为新闻分类页面添加缓存变体
page.config.cache {
  vary {
    # 基于新闻分类参数区分缓存
    tx_news_category {
      value = GP:tx_news_pi1|overwriteDemand|categories
      # 参数为空时使用默认值,避免缓存冲突
      defaultValue = 0
    }
  }
}

方案2:将lib.catImg改为非缓存对象(性能略降,适合小流量站点)

若不想调整缓存规则,可把lib.catImg改为USER_INT对象,强制每次请求都重新渲染内容:

# cat detail page Images - 改为USER_INT避免缓存
lib.catImg = USER_INT
lib.catImg {
  userFunc = TYPO3\CMS\Core\Resource\Rendering\FilesRenderer->render
  references {
    table = sys_category
    uid.data = GP:tx_news_pi1|overwriteDemand|categories
    fieldName = images
    treatIdAsReference = 1
  }
  begin = 0
  maxItems = 5
  renderObj = IMG_RESOURCE
  renderObj {
    file.import.data = file:current:uid
    file.treatIdAsReference = 1
    altText.data = file:current:title
    stdWrap.typolink.parameter.data = file:current:link
    file.maxW=1920
    file.params=-rotate 0 -strip -quality 75
  }
}

方案3:确认TypoScript加载位置

检查lib.catImg的配置是否放在站点级setup.ts中,而非News插件的局部配置里。插件配置仅在插件渲染时生效,而侧边栏的Fluid调用是全局的,需确保TypoScript全局加载。

验证步骤

修改配置后清除TYPO3全缓存,通过链接进入不同分类页面,确认图片无需强制刷新即可正常加载。

内容的提问来源于stack exchange,提问作者webman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:32:37