2013-08-24 15 views
7

Non ho accesso a java o al nodo sul mio host condiviso. C'è un modo per minimizzare il lato server, quindi posso continuare a usare assetic, senza questi motori? Uglify usa il nodo e il compressore yui (deprecato comunque) usa java.Symfony2 minify senza java o nodo

Grazie!

risposta

16

Sembra che ci siano 2 filtri utilizzando solo codice PHP:

Sarà necessario installare la libreria minify php attraverso compositore, e quindi utilizzare il cssmin e jsminplus filtri assetici.

+0

Darò che un colpo, grazie! Non so perché non ho trovato informazioni su Google :-( – Brandon

1

So che questo è un vecchio argomento, ma vorrei aggiungere una piccola correzione alla risposta di @ AdrianBrault per chiunque si imbatta in questo.

Quando si installa la suddetta libreria di minifrati, è necessario utilizzare il filtro minifycsscompressor, che utilizza la classe MinifyCssCompressorFilter. Lo cssmin utilizza una diversa libreria di minifoto.

+0

Grazie, cssminify non ha funzionato, ma minifycsscompressor ha fatto. – userlond

3

Solo per chiarire i punti:

  1. composer require mrclay/minify
  2. In symfony app/config/config.yml Aggiungi a config Assetic:

    # some stuff assetic: filters: # possible another filters minifycsscompressor: ~ jsminplus: ~

    1. In ramoscello:

    {% stylesheets <your assets> filter='minifycsscompressor' %} <link rel="stylesheet" href="{{ asset_url }}"> {% endstylesheets %}

    {% javascripts <your assets> filter='jsminplus' %} <script src="{{ asset_url }}"></script> {% endjavascripts %}

+0

Ho provato questo e quando faccio un dump assetico ottengo il seguente: ' Tentativo di caricare la classe "JSMinPlus" dal namespace globale Hai dimenticato un'istruzione "use"? 'Minify è installato tramite il composer fine (posso vedere il codice nella directory del venditore), dobbiamo registrarlo in symfony in AppKernel.php (normalmente usi new per aggiungere un bundle) o qualcosa del genere? – MicWit

+0

quindi, dopo essermi imbattuto personalmente in questo problema, sembra che il repository github di mrclay abbia una versione 3 che sembra avere il namespace delle classi. installa una delle versioni 2.x della libreria e poi funzionerà come previsto. cambia il tuo compositore.json in: "mrclay/minify": "^ 2.3" –