Symfony升级到4.1资产错误

Symfony升级到4.1资产错误,symfony,assets,symfony4,symfony-3.3,symfony-3.4,Symfony,Assets,Symfony4,Symfony 3.3,Symfony 3.4,我为Symfony 4.1迁移了一个项目,但没有将文件结构更改为新的Symfony文件结构。例如,我的资产保留在\web文件夹中。 除了资产外,它工作正常。要解决此问题,我在控制器中替换了: $this->container->get('templating.helper.assets')->getUrl($path); 到 我还执行以下命令:composer require symfony/asset 在此之后,当我运行该网页时,会出现以下错误: 编译容器时,“assets

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

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

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

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

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

为了尝试修复此错误,我将其放在services.yml中:

services:
assets.packages:
    class: \Symfony\Component\Asset\Packages
    public: true
但在那之后,我又犯了一个错误:


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

不再使用Assetic,请使用网页包Encore

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

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

您的
services.yml
缩进不好,是打字错误吗?是的,yml是有效的。我得到的错误是“没有默认的资产包,请先配置一个。”yml有效,但缩进不正确。在
资产之前应该有4个空格。如果您希望它是
服务的子项,则包
应该有4个空格,并且全部有4个空格!这只是个打字错误。有没有办法配置我没有看到的默认包?您可以解释为什么需要一个参数,而不是尝试全局添加新包
assets.packages:
    class: \Symfony\Component\Asset\Packages
    arguments: ['@assets._default_package']
    public: true