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

时间:2019-10-24 10:53:30

标签: symfony twig

我正在测试使用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启动,我认为由于端口原因找不到徽标,因为当我对图像进行硬编码时找到http://localhost:8000/images/ticket/logo.png的网址。

我如何告诉symfony在此特定端口寻找这些资产?或任何其他解决方案也可以使其在我的本地计算机上运行。

3 个答案:

答案 0 :(得分:1)

在我这边,我的工作就像这样的“ src ='/图像路径'”,它对我有用。 我没有使用“ absolute_url”

答案 1 :(得分:0)

您可以使用 getSchemeAndHttpHost getPort

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

会返回http://localhost:8000

因此,您可以执行以下操作:

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

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

答案 2 :(得分:0)

解决了,我不得不编辑framework.yaml文件(您可以编辑其中一个环境,在本例中为测试文件夹,因此为config\packages\test\framework.yaml)文件并指定{{1} }:

base_url

然后,在树枝模板上使用它应该是: framework: assets: packages: images: base_urls: 'http://localhost:8000/images'