【问题标题】:Generating action link with noCacheHash=true argument not working as expected使用 noCacheHash=true 参数生成操作链接未按预期工作
【发布时间】:2019-03-14 09:17:33
【问题描述】:

Typo3 v9.5.5,PHP 7.2,从 8.7 升级后。缓存清除,缓存关闭,开发环境。我的扩展已 requireCHashArgumentForActionArguments 设置为 0。

我使用如下语法生成指向操作的链接:

<f:link.action action="test" noCacheHash="1"></f:link.action>

很遗憾,cHash 参数始终存在 在返回的 URL 中。它破坏了我的扩展程序的逻辑,因为我在通过 ajax 请求调用操作之前在我的 JavaScript 代码中向 URL 添加了额外的属性。

我预计 noCacheHash 参数会导致从 URL 中删除 cHash 参数。

我希望设置 requireCHashArgumentForActionArguments 可以防止任何 URL 验证问题,即使 URL 中存在 cHash

我知道cHashExcludedParameters 配置设置,但我一般想为我的扩展程序关闭cHash

所以,我正在寻求帮助或解释。

编辑:如果我从 URL 中手动删除 chash 参数并调用它,请求就会成功处理。因此,这意味着 requireCHashArgumentForActionArguments 处理得很好,但只有当 URL 中不存在 chash 时。

编辑 2:

在我的情况下,无效的 cHash 导致 pageNotFoundOnCHashError 处理程序被调用。我在AdditionalConfiguration.php 中设置了$GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFoundOnCHashError'] = false;,它“解决”了一个问题(不是一个优雅的解决方案)。

【问题讨论】:

  • @MKlein,文档说它可以被禁用:可以使用功能开关 requireCHashArgumentForActionArguments 为所有操作禁用该行为。
  • 我只能为您提供一种解决方案:如果您已经在 J​​S 中摆弄 GET 参数,只需踢出 chash 值即可。请记住:任何没有有效 cHash 参数的请求都不会被核心缓存,这可能是一个主要的性能主题!
  • 我想到了这一点,但这不是一个优雅而灵活的灵魂,因为在向 JS 应用程序添加新的 ajax 请求时,我必须始终记住删除手动 chash。我知道 Typo3 中没有缓存的性能问题。感谢您的 cmets 和建议。
  • @qba-dev ,您找到解决方案了吗?

标签: typo3 typo3-extensions typo3-9.x


【解决方案1】:

您需要创建自己的带有属性的 RouteEnhancer,以删除 URL 中的 cHash。这里RoutingEnhancersAndAspects 是一些很好的例子。

您的config.yaml可能如下所示:

ProductDetail:
  type: Extbase
  limitToPages: [your_PageId]
  extension: YourExtPlaceholder
  plugin: Pi1
  routes:
   - { routePath: '/{product_title}', _controller: 'Product::detail', _arguments: {'product_title': 'product'} }
  defaultController: 'Product::detail'
  defaults:
     page: '0'
     requirements:
  page: '\d+'
  aspects:
    product_title:
      type: PersistedAliasMapper
      tableName: tx_yourext_domain_model_product
      routeFieldName: slug

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 2023-03-11
    • 1970-01-01
    • 2021-08-01
    • 2018-10-19
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多