首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 4 webpack +再次在模板中处理图像

Symfony 4 webpack +再次在模板中处理图像
EN

Stack Overflow用户
提问于 2017-12-31 19:19:08
回答 2查看 9.6K关注 0票数 2

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

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

代码语言:javascript
复制
.addEntry('logo', './assets/img/logo.png')

在我运行之后:

代码语言:javascript
复制
yarn run encore dev

它生成/public/build/logo.js/public/build/images/logo.aez323a.png文件。

我的问题是,有没有一种方法可以将Symfony asset()函数与文件名中的哈希值联系起来?或者我应该使用其他方式来使用我的模板中的图像?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-31 19:27:06

您似乎已经启用了版本控制.enableVersioning(),根据您的问题,每次运行yarn run encore dev时都会在您的输出路径中创建一个manifest.json文件,根据您的问题,该路径为/public/build.因此,您必须在设置中添加以下配置

config/packages/framework.yaml

代码语言:javascript
复制
framework:
    assets:
        json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'

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

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

票数 11
EN

Stack Overflow用户

发布于 2019-03-11 13:36:49

现在有了copyFiles官方安可插件:https://symfony.com/doc/current/frontend/encore/copy-files.html

简而言之,您将图像放在/assets/images (或任何其他)中,在构建时插件将此文件夹复制到/public/build,并使用相同的子文件夹结构。你所需要做的就是用"from“和" to”变量给/webpack.config.js - plugin激活添加一些字符串。

在twig中,像往常一样使用这些图像和{{ asset(path_in_public) }}。

如果您启用dev server进行热重新加载

代码语言:javascript
复制
$ yarn encore dev-server

这样,即使在/public中没有物理拷贝,/assets/images中的文件也可以在twig模板中使用。

执行以下命令时,文件将被物理复制

代码语言:javascript
复制
$ yarn encore prod
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48042006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档