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

Drupal 10.1聚合CSS文件因新增查询字符串无法缓存

Drupal 10.1聚合CSS长查询字符串问题解答

查询字符串是否为必填项?

这个长查询字符串是Drupal 10.1引入的动态聚合标识,核心作用是根据语言、主题、用户权限等上下文信息,精准匹配对应的聚合CSS资源组合。从核心设计逻辑来看它是必填的——不同场景下用户需要的聚合资源不同,这个参数用来区分这些资源,避免出现缓存混乱(比如不同语言的CSS被错误复用)。

是否存在配置选项禁用?

Drupal核心目前没有直接的配置开关可以禁用该查询字符串,但可以通过自定义代码调整:

  • 使用hook_css_alter()钩子,在聚合CSS生成阶段移除查询参数,但这么做可能引发缓存冲突,比如不同主题、语言的CSS被错误缓存。
  • 自定义替换asset.resolver服务,重写资源解析逻辑,把原本在查询字符串中的唯一性标识嵌入文件名而非参数中,但需要自行处理资源的缓存有效性校验。

关于"设计倒退"的说明

这个改动是为了解决旧版本中聚合资源缓存上下文不足的问题——此前的实现可能导致不同场景的用户加载到错误的聚合CSS。虽然长查询字符串会让部分缓存分析工具发出警告(工具通常默认带查询参数的资源缓存难度高),但实际只要配置得当,缓存依然可以正常工作:

  • 确保CDN开启支持带查询参数的资源缓存(多数现代CDN都提供该设置)。
  • Drupal内部的静态资源缓存机制不受影响,查询字符串作为资源唯一性标识,会被正确识别和缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:24:52