2012-07-10 2 views
3

여러 이미지에 대해 <img src="">을 생성하려면 Twig 루프를 사용하고 있습니다. 이 코드를 사용하면 프레임 워크 구성에서 base_url을 사용하여 CDN을 활용하는 것입니다. 출력에 어떤 일관성이있을 위해 적어도,Symfony2 나뭇 가지 자산 Base_Url을 예측할 수 없습니까?

{% for key, mobj in productmedia.getImages %} 
    <img src="{{ asset(path('cropImage', {'filename': mobj.getFilename }),'cdn') }}" /> 
{% endfor %} 

{% for key, mobj in productmedia.getImages %} 
    <img src="{{ asset(path('cropImageSm', {'filename': mobj.getFilename }),'cdn') }}" /> 
{% endfor %} 

내가 기대 ..하지만 때로는 하나 BASE_URL를 사용 SF2 보인다 때로는 하나를 사용하지 : 아래

Twig 코드 . 왜 이럴 수 있니?

다음은 출력물입니다. 첫 번째 루프에서 볼 수 있듯이

<img src="http://cdn.cloudfront.net/cri/1/matt-skydiving.SH340_SW340.jpg" /> 
<img src="/cri/1/Swimming.SH340_SW340.jpg" /> 
<img src="http://cdn.cloudfront.net/cri/1/successman2.SH340_SW340.jpg" /> 

<img src="/cri/1/matt-skydiving.SH40_SW40.jpg" /> 
<img src="http://cdn.cloudfront.net/cri/1/Swimming.SH40_SW40.jpg" /> 
<img src="http://cdn.cloudfront.net/cri/1/successman2.SH40_SW40.jpg" /> 

은 .. 일부는 있습니다 .. BASE_URL을 상속하고 일부는 .. 내가 .. 모든 캐시를 지워 모든 일반 디버깅 단계를 한 적이 없습니다 .. 그것은하지 않습니다 이것이 일관성이없는 이유를 이해하십시오.

답변

4
당신은 url 나뭇 가지 기능으로 전환 할 수 있습니다

, 그것은 path으로 동일합니다 그러나 이것은 항상 절대 URL을 반환합니다

url('cropImageSm', {'filename': mobj.getFilename }) 

또한 참조 :

Asset()은 공급 호스트를 사용합니다 config.yml

framework: 
    templating: 
     packages: 
      {althostname}: 
       base_urls: { http: ["http://www.domain2.com"], ssl: "/"] } 

그래서 {{ asset(path('route1', {'page': 1 }),'althostname') }}은 ...를 출력합니다.

+0

감사합니다. Carlosz! 'url()'에'path()'를 사용하고자하는 이유가 있습니다. Url()은 절대 URL을 제공하고 Path()는 상대적 URL을 가져다줍니다. 그러나 asset() 함수를 사용하면 configuration.yml의 프레임 워크 부분에 지정된 base_urls를 동적으로 삽입 할 수 있습니다. 내 구성 파일에 ** % **이 누락되었다는 것을 알게되었습니다. 누락 된 ** % **을 추가 한 후 내 결과는 내가 예상 한 것입니다. – JustinP

관련 문제