在Symfony2中为包设置base_path

时间:2016-02-14 12:08:56

标签: symfony

这是我的config.yml文件

framework:
#code
templating:
    engines: ['twig']
    #assets_version: SomeVersionScheme
    packages:
      blade:
        base_path: '/bundle/bladecms'
#code

我想为刀片前缀设置base_path以便能够使用

<img src="{{ asset('images/image.png', 'blade') }}"/>

代替

<img src="{{ asset('bundle/bladecms/images/image.png') }}"/>

那么问题是什么?当我使用&#39; base_path&#39;我得到了

Unrecognized option "base_path" under "framework.templating.packages.blade"

如果我将base_path更改为base_url,我会得到

"/bundle/bladecms" is not a valid URL

如何正确配置?

1 个答案:

答案 0 :(得分:0)

您必须设置有效的网址(例如http://yourhost/bundle/bladecms)。

按照以下方式进行配置:

framework:
    templating:
        packages:
            blade:
                assets_base_urls: '%router.request_context.scheme%://%router.request_context.host%/bundle/bladecms

并使用如下:

<img src="{{ asset('images/image.png', 'blade') }}"/>

第一个参数router.request_context.scheme是请求使用的协议(即httpssl)。
第二个router.request_context.host是请求的主持人。

像这样,您的base_url会根据请求动态更改。

请参阅http://symfony.com/doc/current/reference/configuration/framework.html#assets-base-urls