나는 많은 공유 요소가있는 프로젝트에서 작업 중입니다. 꼬리말, 머리말, 내비게이션 등. 필자는 필자가보기에 확장 한 레이아웃이 거의 없다. 지금은 공유 요소를 내 뷰에서로드하고 있지만로드 할 뷰 내부의 각 공유 요소에 필요한 모든 애셋 (종속성)을 제공해야합니다. 그 단계를 건너 뛰고 즉시 사용을 위해 준비 될 요소를로드 할 수 있기를 바란다. (그래서 일부 자바 스크립트와 CSS 파일을 기억할 필요가 없을 것이다. .나뭇 가지를 사용하여 바로 사용할 수있는 공유 요소 만들기
요소보기에서 공유 요소에 필요한 모든 에셋을 지정하려고 했으므로 필요로하는 요소를 포함 할 때 내 뷰 내에 모든 요소를 지정하지 않고도 "자동으로"자산을로드합니다. 그래서 제 질문은 이것이 가능하거나 이것이 성취 할 수있는 올바른 방법일까요?
구조 :
views/
- /layout/
-> layout.twig
- /homepage/
-> index.twig
- /shared/
-> navigation.twig
레이아웃 :
<!-- HTML headers, etc. -->
{% block assets %}
<link rel="stylesheet" href="xxx" />
{% endblock %}
{% block content %}
{% endblock %}
보기 :
{% extends "layout/layout.twig" %}
{% block assets %}
{{ parent() }}
<!-- some assets for view -->
{% endblock %}
{% block content %}
{% include "shared/navigation.twig" %}
<!-- content -->
{% endblock %}
공유 요소 navigation.twig
는 더 나은 코드를 사용하는 경우에도 설명한다 희망 :// It's not working, of course - just for better explanation of what I'm trying to approach
{% block assets %}
{{ parent() }}
<!-- assets needed for shared element -->
{% endblock %}
<!-- rest of shared element -->
일반적으로 일부 공유 요소에는 많은 프로젝트가 포함될 수 있으므로보기에는 모든 자산을로드하지 않는 것으로 보입니다. 또한 <body>
안에 스타일을 렌더링하고 싶지 않으므로보기 안에 <links>
을 만들면 나에게 갈 방법이 아님을 지적하는 것이 좋습니다. 이것은 공유 요소처럼 작동하기 때문에, 공유 요소마다 필요한 자산을 모르고조차도 자산을로드 할 위치와로드 할 자산을 제어 할 수 있습니다. 미리 감사드립니다. documentation on use
에서
안녕하세요, 스타일 시트와 자바 스크립트 블록을 별도로 사용해 보셨습니까? –
나는 그것이 무엇을 의미하는지 모르겠습니다. 나는 그것들을 분리한다. 공유 요소에 관해서라면, 스크립트는 대부분 그 공유 요소의 뷰의 끝 부분에있다. (괜찮 았지만 몸의 끝에서 그것들을 가지고 싶다.) 그리고 스타일 시트는 뷰에서로드된다. 자체적으로 (나를보기에 문제가되고 싶다. 내가보기에 그들을 쓰고 머리 속에 넣을 수 있기를 원한다.) –
모범 사례는 심포니 문서에 설명되어있다 : https://symfony.com/doc /3.4/templating.html#including-stylesheets-and-javascripts-in-twig –