Come includere CSS dalla cartella delle risorse in Symfony 2
-
27-10-2019 - |
Domanda
Ho il CSS situato in
app/Resources/FOSUserbundle/css
Come posso includerlo nel mio modello di ramoscello
Il motivo per cui sto mettendo CSS è che i miei modelli di fosuser completamente sovrascritti in quella cartella. Quindi voglio conservare le immagini CSS, JS tutte lì dentro in modo che se devo utilizzare in un altro sito Web copro quella cartella
Soluzione
Non sono del tutto sicuro di come lo includeresti nei tuoi modelli di ramoscello, ma ...
1) Metto le risorse che utilizzo in diversi fasci / progetti nella directory / directory. Quindi puoi fare riferimento quindi in questo modo:
{% stylesheets 'css/styles.css' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
2) Se è necessario sovrascrivere il fosuserbundle comunque, puoi mettere le risorse all'interno del pacchetto ereditario, facendole riferimento in questo modo:
{% javascripts '@YourBundle/Resources/public/js/scripts.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
Altri suggerimenti
Quello che hai fatto è perfettamente bene.
Basta fare quanto segue:-
$ app/console assets:install web
Installerà le risorse nella directory "Web" pubblica, in cui le risorse dovrebbero essere tecnicamente utilizzate con i tuoi modelli di ramoscello.
Le risorse possono quindi essere utilizzate all'interno di modelli di ramoscello come questo:-
{% 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 %}
Sebbene la domanda suggerisca e sovrascrivi il caso, è anche per un caso in cui il CSS o JS si trovano in una cartella comune, lontano dalla struttura del pacchetto.
Una risposta è utilizzare le variabili del ramoscello disponibili. Ad esempio, se ho un file CSS situato qui
app/Resources/views/clientSite/customFolder/css/mycss.css
Posso caricare in qualsiasi modello usando qualcosa del genere (Nota L'esempio sovrascrive il blocco di fogli di stile completo, ma non richiesto, il tag Twig Stylesheet può essere aggiunto in qualsiasi blocco):
{% 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 %}
Ricorda anche di Eseguire il comando Assetico: Dump, quindi Symfony sa che ha dovuto pubblicare il CSS nella cartella Web/CSS con tutti gli altri file.