aBh*_*jit 2 symfony twig assetic
我搜索了很多,但找不到解决方案来实现这个目标:
{% for i in 1..6 %}
<li>
{% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg' %}
<img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
{% endimage %}
</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
图像的名称应该是动态的.请帮忙.
上面的代码抛出错误:
值"〜"的意外标记"operator"
解:
根据@Nic发布的内容(接受的答案),唯一的解决方法似乎是:
{% for i in 1..6 %}
<li>
<img src="{{ asset('bundles/digicreekil/images/college/demo/facilities/thumbs/laboratory/t'~i~'.jpg') }}" alt='demo'/>
</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
您不能在Assetic中使用变量(因此也不能在{% image %}标记中使用).根据Kris Wallsmith(Assetic的创建者)的说法,原因是:
(...)Assetic需要能够解析Twig模板并提取那里定义的任何资产.如果在标记中使用变量,则无法进行此操作.
使用CLI命令时,会转储资产,而不是在呈现页面时.所以你不能使用变量,因为你没有它们的值.
有关完整的对话,请参阅此GitHub问题.
请记住,Assetic在您运行时创建并优化资产app/console assetic:dump,而不是在实际呈现页面时.因此,它无法知道任何值,它只能用于静态资产.
因此,如果您想使用动态资产,则必须执行以下操作:
{% for i in 1..6 %}
<li>
<img class="facThumb" src="{{ asset('images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg') }}" alt="Facilitiy"/>
</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以遍历数字1-6并使用资产URL中的变量,因为您不使用Assetic,而是使用Twig的asset()函数.asset()只返回资产的完整URL,它不进行任何优化,因此可以在运行时执行.
但是,如果您想使用Assetic的优化和过滤器,您还可以为其提供静态资产:
<li>
{% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/1.jpg' %}
<img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
{% endimage %}
</li>
<li>
{% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/2.jpg' %}
<img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
{% endimage %}
</li>
<li>
{% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/3.jpg' %}
<img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
{% endimage %}
</li>
Run Code Online (Sandbox Code Playgroud)
(等等.)
这样,您将需要复制相同的代码6次,但它允许您使用Assetic.
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |