Symfony 4 webpack + encore处理模板中的图像

Vin*_*aux 2 symfony webpack webpack-encore

使用Symfony 4和Webpack + Encore + Yarn,我想在我的模板中处理图像,而我真的不知道如何实现这一点.

我把我的图像放在我的/assets/img/logo.png文件夹中,并在我的文件夹中使用webpack.config.js:

.addEntry('logo', './assets/img/logo.png')
Run Code Online (Sandbox Code Playgroud)

在我跑完之后:

yarn run encore dev
Run Code Online (Sandbox Code Playgroud)

哪个生成/public/build/logo.js/public/build/images/logo.aez323a.png文件.

我的问题是,有没有办法将Symfony asset()函数与文件名中的哈希链接到文件名?或者我应该使用其他方式在我的模板中使用图像?

kne*_*tsi 10

看来你已经启用了版本控制.enableVersioning(),每次运行yarn run encore dev一个manifest.json的文件应该在你的输出路径中创建的基础上,你的问题这个路径是/公/编译.因此,您必须在设置中添加以下配置

配置/包/ framework.yaml

framework:
    assets:
        json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
Run Code Online (Sandbox Code Playgroud)

然后,您将能够使用asset()按名称引用的功能,例如asset('public/images/logo.png')

您可以在此处的 symfony文档中找到此信息