首页 > 解决方案 > Symfony 升级到 4.1 资产错误

问题描述

我为 Symfony 4.1 迁移了一个项目,但没有将文件结构更改为新的 Symfony 文件结构。例如,我的资产保留在 \web 文件夹中。除了资产,它工作正常。为了解决这个问题,我在控制器中更换了:

$this->container->get('templating.helper.assets')->getUrl($path);

$this->container->get('assets.packages')->getUrl($path);

我还执行以下命令:composer require symfony/asset

之后,当我运行网页时,出现以下错误:

在编译容器时,“assets.packages”服务或别名已被删除或内联。您应该将其公开,或者直接停止使用容器并改用依赖注入。

为了尝试修复这个错误,我把它放在 services.yml 中:

services:
assets.packages:
    class: \Symfony\Component\Asset\Packages
    public: true

但在那之后我得到另一个错误:

在此处输入图像描述

你知道那可能是什么吗?有什么问题吗?

标签: symfonyassetssymfony4symfony-3.3symfony-3.4

解决方案


我已经能够修复错误。在服务中添加默认包作为参数就足够了:

assets.packages:
    class: \Symfony\Component\Asset\Packages
    arguments: ['@assets._default_package']
    public: true

推荐阅读