在本地开发中找不到 Symfony 资产

Symfony assets not found on local development

我正在使用 dompdf 测试一个 pdf 生成的文件,该文件之前使用 twig 从 html 生成。在我使用的那个模板中:

<img style="width: 146px; height: 81px;" src="images/ticket/logo.png"/>
{{ absolute_url(asset('images/ticket/logo.png')) }}

徽标未加载,打印的绝对 url 是:http://localhost/images/ticket/logo.png,服务器在 localhost:8000 启动,我认为由于端口原因找不到徽标因为当我将图像 url 硬编码为 http://localhost:8000/images/ticket/logo.png 时,找到了。

如何告诉 symfony 在这个特定端口寻找这些资产?或者任何其他让它在我的本地机器上工作的解决方案。

您可以使用 getSchemeAndHttpHostgetPort

创建一个带有端口的 url
{{ app.request.getSchemeAndHttpHost() }}:{{ app.request.getPort() }}

会returnhttp://localhost:8000

所以你可以做类似的事情:

{{ app.request.getSchemeAndHttpHost() ~ ':' ~ app.request.getPort() ~ asset('images/ticket/logo.png') }}

它应该可以工作,但是您可以检查 app.request.getPort() return 端口是否正确,或者您可以对其进行硬编码。

在我这边,我所做的是这样的"src='/path-of-image'",它对我有用。 我没有使用 "absolute_url"

已解决,我不得不编辑 framework.yaml(您可以编辑有问题的环境之一,在本例中为测试文件夹,所以 config\packages\test\framework.yaml)文件并指定 base_url:

framework:
    assets:
        packages:
            images:
                base_urls: 'http://localhost:8000/images'

然后,在树枝模板上使用它应该是: asset('ticket/logo.png', 'images')