Symfony2にリソースフォルダーからCSSを含める方法2
-
27-10-2019 - |
質問
私はそこにあるCSSをhvaeします
app/Resources/FOSUserbundle/css
Twigテンプレートにそれを含めるにはどうすればよいですか
CSSを入れている理由は、そのフォルダーに私のすべてのオーバーライドされたFosuserテンプレートがあるためです。だから私はCSS、JS画像をそこに保持したいので、他のウェブサイトで使用する必要がある場合は、そのフォルダーをコピーするだけです
解決
Twigテンプレートにそれをどのように含めるかはよくわかりませんが...
1)Web /ディレクトリのいくつかのバンドル /プロジェクトで使用するリソースを配置します。次に、次のように参照できます。
{% stylesheets 'css/styles.css' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
2)とにかくFosuserbundleをオーバーライドする必要がある場合は、リソースを継承バンドル内に配置して、次のように参照できます。
{% javascripts '@YourBundle/Resources/public/js/scripts.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
他のヒント
あなたがしたことは完全に大丈夫です。
次のことを行います: -
$ app/console assets:install web
Twigテンプレートで使用するために、資産が技術的に使用されるべきである公共の「Web」ディレクトリに資産をインストールします。
その後、資産は次のような小枝テンプレート内で使用できます。
{% block stylesheets %}
<link href="{{ asset('/css/main.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}
{% block javascripts %}
<script src="{{ asset('/js/main.js') }}" type="text/javascript"></script>
{% endblock %}
質問はケースを示唆し、オーバーライドしますが、CSSまたはJSがバンドル構造から離れた一般的なフォルダーにある場合も適しています。
答えの1つは、利用可能なTwig変数を使用することです。たとえば、ここに1つのCSSファイルがある場合
app/Resources/views/clientSite/customFolder/css/mycss.css
このようなものを使用して任意のテンプレートにロードできます(例としては、完全なスタイルシートブロックをオーバーライドしますが、必須ではありませんが、任意のブロックにStyleSheet Twigタグを追加できます):
{% block stylesheets %}
{{ parent() }}
{% stylesheets '%kernel.root_dir%/Resources/views/clientSite/customFolder/css/mycss.css'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
また、忘れないでください Assetic:Dumpコマンドを実行します, 、そのため、Symfonyは、他のすべてのファイルを使用してCSSをWeb/CSSフォルダーに公開する必要があることを知っています。