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

Drupal 10.1.1随机Symfony异常:主题需作为查询参数传入

Drupal 9.x升级到10.1.1后CSS请求BadRequestHttpException问题解决

问题核心

升级后仅在编辑内容并清理所有缓存时出现日志异常:

Symfony\Component\HttpKernel\Exception\BadRequestHttpException: The theme must be passed as a query argument in Drupal\system\Controller\AssetControllerBase->deliver()(位于/home/humming7/hhc10/web/core/modules/system/src/Controller/AssetControllerBase.php第127行)

对应请求的CSS文件随机存在/不存在,无固定来源页。

可能原因

  • 旧缓存残留:缓存清理后,浏览器、CDN或反向代理仍保留了无theme查询参数的旧CSS聚合URL,请求失效的旧URL触发错误。
  • 自定义代码缺陷:自定义模块/主题中生成CSS链接的逻辑未正确传递theme参数,缓存重建时生成了不合法的资产URL。
  • 缓存重建竞态:缓存清理后,CSS聚合进程尚未生成完整的带主题参数的新文件,此时用户请求就会触发异常。

解决方案

1. 清除前端与CDN缓存

  • 强制刷新浏览器缓存(快捷键Ctrl+Shift+R),覆盖旧的CSS链接;
  • 若使用CDN或反向代理,手动刷新其缓存,确保旧的无参数URL被清除。

2. 排查自定义资产生成逻辑

  • 检查自定义模块、主题中涉及CSS加载的代码(比如drupal_add_css、AssetResolver服务调用);
  • 确保生成CSS URL时严格传递当前主题参数,例如调用AssetResolverInterface::getCssAssets时传入正确的主题对象。

3. 缓存清理后预热资产

  • 缓存重建后,自动触发关键页面的访问,提前生成聚合CSS文件。可通过Drush命令实现:
    drush cache-rebuild && drush wget https://www.hummingbirdhealingcenter.org -q
    
  • 也可借助缓存预热类模块实现自动化操作。

4. 临时禁用CSS聚合(应急方案)

  • 进入后台配置 -> 性能,暂时关闭"聚合CSS文件"选项,避免用户请求触发错误,待根源问题解决后再重新开启。

内容的提问来源于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.16 08:17:07