gpt4 book ai didi

html - 我可以将 webpack 'copyFiles' 与 twig.paths 配置结合使用吗

转载 作者:行者123 更新时间:2023-12-04 13:34:03 24 4
gpt4 key购买 nike

我正在使用 webpack encore,所以这是我用于复制文件的 webpack.config:

# webpack.config.js
Encore
// -- 37 lines --
.copyFiles({
from: './assets/images',
pattern: /\.(png|jpg|jpeg|ico)$/,
// to path is relative to the build directory
to: 'images/[path][name].[hash:8].[ext]'
})

;
我所有的图像文件都在 ./ Assets /图像 .
现在我跑 yarn watch所以我的图像被复制到 公共(public)/构建/图像 manifest.json 显示:
# public/build/manifest.json

{
"build/app.css": "/build/app.css",
"build/app.js": "/build/app.js",
"build/mail.css": "/build/mail.css",
"build/mail.js": "/build/mail.js",
"build/runtime.js": "/build/runtime.js",
"build/vendors~app.js": "/build/vendors~app.js",
"build/fonts/fontawesome-webfont.ttf": "/build/fonts/fontawesome-webfont.1e59d233.ttf",
"build/fonts/fontawesome-webfont.woff2": "/build/fonts/fontawesome-webfont.20fd1704.woff2",
"build/fonts/fontawesome-webfont.eot": "/build/fonts/fontawesome-webfont.8b43027f.eot",
"build/fonts/fontawesome-webfont.woff": "/build/fonts/fontawesome-webfont.f691f37e.woff",
"build/images/favicon.ico": "/build/images/favicon.c48cee16.ico", <-- This one
"build/images/fontawesome-webfont.svg": "/build/images/fontawesome-webfont.c1e38fd9.svg",
"build/images/logo.png": "/build/images/logo.63e19ce5.png" <-- This one
}
然后我尝试在我的 中设置别名twig.yaml 文件
# config/packages/twig.yaml
twig:
default_path: '%kernel.project_dir%/templates'
paths:
'%kernel.project_dir%/public/build/images/': images
'%kernel.project_dir%/public/build/': build
我使用别名在 base.html.twig 中获取我的图像
# template/base.html.twig
<link rel="shortcut icon" href="{{ asset("@images/favicon.ico") }}" type="image/x-icon" />
我也尝试使用这种语法:
# template/base.html.twig
<link rel="shortcut icon" href="{{ "@images/favicon.ico" }}" type="image/x-icon" />
但它不起作用。
唯一有效的语法是:
# template/twig.yaml
<link rel="shortcut icon" href="{{ asset("build/images/favicon.ico") }}" type="image/x-icon" />
那么我做错了什么?
这甚至可以在复制包含哈希的文件时使用别名吗?
我可以在尝试使用 copyFiles 之前使用别名。

最佳答案

我在这里找到了答案:
Embedding a Webpack asset inside Twig's templated e-mail using Symfony Mailer
这对我有用。
只是不要忘记清理缓存( php bin/console c:c )
现在我的代码如下所示:

# config/packages/twig.yaml
twig:
paths:
'%kernel.project_dir%/public/build/images/': images
'%kernel.project_dir%/public/': build
# templates\Mailer\password_reset.html.twig
...
<img src="{{ email.image('@images/' ~ asset('build/images/logo.png')|split('/')[3]) }}" alt="Logo">
...
如果这样做后仍然有错误,请尝试复制/路径 config/packages/twig.yaml进入 config/packages/env/twig.yaml (将 env 替换为您的 env 名称)
尽管它有点hacky,但它确实有效。

关于html - 我可以将 webpack 'copyFiles' 与 twig.paths 配置结合使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63300193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com