0

以下情况:

  • 自动导入项目:
    • 项目的图像由某些 cron 任务 perl 更新到文件夹中uploads/myExt/<Vendor>/<Serial>/(供应商和序列号可能因产品而异)
    • 图片有命名约定,每个产品都有自己的文件夹
    • 在命令行上启动一个命令脚本,该脚本通过 XML 文件获取产品数据;数据存储在数据库中(Extbase tx_myext_domain_model_item
  • 前端渲染
    • Extbase 控制器扫描项目的图像文件夹uploads/myExt/<Vendor>/<Serial>/并将该文件夹中的文件名数组(名称:)与文件imagesInFolder夹名称(名称:)一起发送imageFolder到模板
    • 流体模板循环imagesInFolder<f:for each="{imagesInFolder}" as="image">
    • image在 Fluid 的视图助手的帮助下,为每个图像渲染图像的缩略图:<f:image src="{item.imageFolder -> f:format.raw()}/{image}" maxWidth="193" maxHeight="145" />

这是问题:

更改文件顺序时,仅更改文件名。但是在前端,顺序和以前一样,这是错误的。文件夹中已处理的缩略图_processed_不会更新。我试图将文件的 mtime 和 ctime 更改为比已处理文件的更新,但没有任何改变。

当原始文件较新时,如何告诉 TYPO3 重新渲染处理过的文件?

也许有一些用于 Fluid 的 TypoScript 设置可以做到这一点,但我没有找到。
也许在导入期间我可以调用一些服务?

4

1 回答 1

1

有一个名为“文件抽象层:更新存储索引”的调度程序任务,它扫描文件存储以查找新的或更改的文件。

确保任务足够频繁地开始。

一般来说:尽量避免替换或重命名文件,因为 TYPO3 生成依赖文件和记录,都需要刷新。

请注意,还有另一个类似的任务:“文件抽象层:在存储中提取元数据”,可能需要在另一个之后调用。

于 2019-05-07T11:20:19.353 回答