2013-10-31 3 views
3

심포니 (Symfony)에서 앵귤러 (Angular)로 파셜을 어떻게 제공해야하는지 잘 모르겠습니다.AngularJS 부분을 제공하기 위해 Symfony2를 사용하는 가장 좋은 방법은 무엇입니까?

Symfony에서 경로를 설정 한 다음 컨트롤러에서 파일을 출력하도록해야한다고 생각 했습니까?

그러나 단순히 컨트롤러에서 파일을 출력하는 방법 (예 : 나뭇 가지가 아닌, 실제로 아무것도 렌더링하지 않는 방법)은 확실하지 않았습니다.이 방법은 제대로 캐시할까요?

... 
public function showAction() { 
    return file_get_contents(' ... path to file ...'); 
} 
.... 

그건 분명, 내 컨트롤러에있는,

partials: 
    pattern: /web/partials/{partial} 
    defaults: { _controller: AcmeWebBundle:Partials:show, _format: html } 

다음 : 나는 파셜/button.html를 다운로드 각도하려는 경우

예를 들어, 내가 좋아하는 경로를 설정해야합니다 작동하지 않습니다 .. 어떻게 나뭇 가지를 통과하지 않고 바로 파일을 출력할지 모르겠습니다. 또는 내 모든 부분은 나뭇 가지 파일이어야합니다 (그저 나뭇 가지가 들어 있지 않은 것)?

+2

왜 그냥 웹 서버가 파일을 제공 할 수? 심포니를 왜 사용해야합니까? – Chausser

답변

8

그런 내용을 반환하려면 응답 본문에 파일의 내용을 추가해야합니다.

use Symfony\Component\HttpFoundation\Response; 
... 

public function showAction() { 
    return new Response(file_get_contents(' ... path to file ...'),200); 
} 
... 

하지만 실제로 웹 서버가 파일을 제공하도록해야합니다. 내가 뭘 웹 디렉토리 아래에 하위 폴더에 내 파셜을 넣어 :

web/ 
    partials/ 
    img/ 
    js/ 
    css/ 

그럼 그냥 domain.com/parials/partialFileName.html를 호출하고 파일이 symfonys을 존재하기 때문에 재 작성은 기본적으로 그것을 무시하고 그냥 파일을 제공해야한다.

또 다른 방법은 (here 언급) 후, 번들의 자원/공용 폴더에 파일을 넣어 (웹이고 실제 디렉토리 웹 /)

php app/console assets:install --symlink 

이것은 심볼릭 링크를 생성합니다 실행하는 것입니다 공개 디렉토리를 가리키는 웹 디렉토리에서. 경우에 따라서, 당신은 :

Acme/DemoBundle/Resources/public/partials/myPartial.html 

그것은에서 사용할 수 있습니다 :

http://www.mydomain.com/bundles/acmedemo/partials/myPartial.html 
+0

감사! Symfony에서 수행 할 수있는 작업을 알지 못했습니다. – Matt

+0

사람들이 왜 투표를 중단했는지 확실하지 않습니다. 당신은 또한 자산 시스템을 사용하고 번들 부분을 유지 한 다음 애셋을 게시 할 수 있습니다. 심볼릭 링크를 사용하면 내용을 변경할 때마다 다시 게시하지 않아도됩니다. – Chausser

관련 문제