升级Shopware至6.5.5.2后管理面板异常:api路由404问题排查
Shopware 6.5升级后
api/_info/entity-schema.json 404问题排查方案 1. 检查Web服务器配置
日志显示"No such file or directory",说明服务器可能直接尝试读取静态文件而非转发请求给Symfony:
- Nginx:确认配置中包含
try_files $uri /index.php$is_args$args;,确保.json结尾的请求会转发到index.php,避免存在针对.json的特殊rewrite规则拦截请求。 - Apache:检查
public/.htaccess文件,确认RewriteRule .* index.php [L]规则生效,没有排除.json后缀的请求。
2. 清理缓存并重新生成路由
执行以下命令确保路由缓存完全刷新:
bin/console cache:clear bin/console router:dump-env prod # 生产环境执行,开发环境可跳过 rm -rf var/cache/* # 手动删除缓存目录,避免残留
再用命令验证路由在当前环境的有效性:
bin/console router:match /api/_info/entity-schema.json
如果返回正确的InfoController,说明路由配置本身没问题,问题出在请求转发环节。
3. 排查第三方插件冲突
- 禁用所有第三方插件:
bin/console plugin:disable --all
- 测试
api/_info/entity-schema.json是否恢复正常。 - 若正常,逐个重新启用插件,每次测试路由,定位导致问题的插件。重点排查修改路由、API内核或Symfony事件订阅器的插件。
4. 启用Symfony调试日志排查路由匹配
- 在
.env文件中设置APP_DEBUG=1(开发环境),然后重新发起请求。 - 查看
var/log/dev.log中的路由匹配日志,确认请求是否被正确路由到api.info.entity-schema,还是被其他规则拦截。
5. 验证Webpack构建完整性
针对更新2中的WebpackDynamicPublicPath提示,重新构建管理端资源排除静态资源干扰:
rm -rf public/administration ./bin/build-administration.sh
该提示本身通常不影响路由,但确保资源构建无异常可排除关联问题。
6. 确认升级文件完整性
- 检查
public/index.php、config/packages/routing.yaml等核心配置文件是否在升级时被正确覆盖,避免旧版本配置残留导致路由失效。 - 执行系统检查命令验证环境符合Shopware 6.5要求:
bin/console system:check
内容的提问来源于stack exchange,提问作者Zirc75
相关产品推荐
相关产品推荐

