symfony - 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
但在那之后我得到另一个错误:
你知道那可能是什么吗?有什么问题吗?
解决方案
我已经能够修复错误。在服务中添加默认包作为参数就足够了:
assets.packages:
class: \Symfony\Component\Asset\Packages
arguments: ['@assets._default_package']
public: true