为Symfony2和Twig中的文件添加前缀资源路径

RYN*_*RYN 2 php assets symfony twig

我上传了我的文件web/files/images/,我正在尝试使用asset函数链接它们:

<img src='{{ asset(article.image) }}'/>
Run Code Online (Sandbox Code Playgroud)

但这会产生像/img1.jpg
我需要前缀(设置基本文件夹)资产URL以强制它制作的URL /files/images/img1.jpg
我如何为URL添加前缀asset

Nic*_*ich 10

虽然您可以轻松地为此目的引入一个新的树枝变量(即在您的基础模板中)...

{% set asset_base = '//files/images' %}
Run Code Online (Sandbox Code Playgroud)

...或者创建一个静态的全局树枝变量......

# app/config/config.yml
twig:
    globals:
        asset_base: //files/images
Run Code Online (Sandbox Code Playgroud)

...然后在里面使用它,即标签的src属性img......

<img src='{{ asset_base }}{{ asset(article.image) }}'/>
Run Code Online (Sandbox Code Playgroud)

... symfony2已经assets_base_urls指令的形式提供此功能:

# app/config/config.yml
framework:
    templating:
        assets_base_urls:
            http:   [http://domain/files/images]
            ssl:    [https://domain/files/images]
Run Code Online (Sandbox Code Playgroud)

您还可以通过提供协议相对URL来同时设置基本URL:

framework:
    templating:
        assets_base_urls: //files/images
Run Code Online (Sandbox Code Playgroud)

有关该指令的更多信息,请参阅FrameworkBundle Configuration#assets-base-urls文档一章.