1

在 eZ Publish 5 中,我有一个带有图像属性的类。

在 twig 模板中,我可以从属性参数中获取相对 url(例如 '/var/site/storage/image/...')。

现在我需要绝对网址。获得它的最佳方法是什么?

我应该获取请求信息并将基本网址附加到相对网址吗?或者有一个内置的方法?

谢谢

4

2 回答 2

2

你应该这样做:

{{ asset( ez_image_alias( content.getField( 'image' ), content.versionInfo, 'original' ).uri, absolute=true ) }}

ez_image_alias 用于获取图像别名(显然),这里我们得到原始变化。然后我们获取图像别名的 uri,并将其传递给 symfony资产函数。

那应该行得通。

于 2014-11-13T06:27:48.770 回答
0

是的,这是正确的答案。只是不要忘记在之前添加一些测试,例如:

检查您要从中检索数据的内容字段是否存在以及该字段是否不为空:

{% if content.fields['myFieldIdentifier'] is defined and not ez_is_field_empty(content, 'myFieldIdentifier') %}
    {# do the job #}
{% endif %}

以下是默认情况下 ImageFieldType 的呈现方式:

{% block ezimage_field %}
{% spaceless %}
{% if not ez_is_field_empty( content, field ) %}
<figure {{ block( 'field_attributes' ) }}>
    {% set imageAlias = ez_image_alias( field, versionInfo, parameters.alias|default( 'original' ) ) %}
    <img src="{% if imageAlias %}{{ asset( imageAlias.uri ) }}{% else %}//:0{% endif %}"{% if imageAlias.width is defined %} width="{{ imageAlias.width }}"{% endif %}{% if imageAlias.height is defined %} height="{{ imageAlias.height }}"{% endif %} alt="{{ field.value.alternativeText }}" />
</figure>
{% endif %}
{% endspaceless %}
{% endblock %}
于 2015-10-13T09:13:57.440 回答