从Webpack Encore切换到AssetMapper后报错:资产清单文件不存在
解决Symfony 7.0 AssetMapper替代Webpack Encore后的manifest.json不存在错误
排查与修复步骤
清理Webpack Encore残留配置
- 删除项目根目录下的
webpack.config.js、yarn.lock/package-lock.json文件,若无需其他npm依赖可一并删除package.json - 删除
config/packages/webpack_encore.yaml配置文件,这是系统仍试图读取Encore清单文件的核心原因
- 删除项目根目录下的
检查Twig模板引用
- 确保所有模板中未使用
encore_entry_script_tags()、encore_entry_link_tags()这类Webpack Encore专属函数 - 确认
base.html.twig中importmap('app')的用法正确,同时保证config/importmap.php已正确配置app入口
- 确保所有模板中未使用
重新编译AssetMapper资源
- 执行命令生成AssetMapper编译资源:
php bin/console asset-map:compile - 检查
public/assets目录是否生成编译后的资源文件
- 执行命令生成AssetMapper编译资源:
验证AssetMapper启用状态
- 查看
config/packages/framework.yaml,确保AssetMapper已启用:framework: asset_mapper: enabled: true paths: - assets/ - 注释或删除任何与Webpack Encore相关的配置项
- 查看
清除Symfony缓存
- 执行缓存清除命令,避免旧配置残留:
php bin/console cache:clear
- 执行缓存清除命令,避免旧配置残留:
内容的提问来源于stack exchange,提问作者Thomas Landauer
相关产品推荐
相关产品推荐

