1

我正在处理一些遗留代码和一个 symfony2 应用程序

配置.yml:

framework:
...
templating:
    engines: ['twig']
    assets_base_urls:
      http: [%app.path%, %cdn.path%]

app.path:遗留资产的路径

cdn.path: symfony 应用程序资源的路径

<img ... src="{{ asset('foto/'~foto.pathB) }}">
<img ... src="{{ asset('foto/'~foto.pathM) }}">
<img ... src="{{ asset('foto/'~foto.pathS) }}">

问题全在于这三个img,第一个img上的asset()指的是第二个base_url(cdn.path),最后两个指第一个(app.path),尽管对我来说似乎不是确定性行为资产在第一个 base_url,我真的不明白为什么第一个资产()跳转到下一个 base_url

顺便说一句,我已经清理了我的开发缓存但没有成功

更新

多个cdns的解决方案!

4

1 回答 1

2

文档中:

如果提供了多个基本 URL,Symfony2 将在每次生成资产路径时从集合中选择一个。

现在,如果我们查看相应的代码,我们有:

public function getBaseUrl($path)
    {
        switch ($count = count($this->baseUrls)) {
            case 0:
                return '';

            case 1:
                return $this->baseUrls[0];

            default:
                return $this->baseUrls[fmod(hexdec(substr(md5($path), 0, 10)), $count)];
        }
    }

对于数组(default此处),从数组中获取的 url 取决于$path您作为函数的参数提供的。所以一个$path人总是会给出相同的网址,但$path不一定都给出相同的网址。

于 2013-07-24T14:45:44.723 回答