2012-12-28 16 views
8

I to mój CSS z następującego kodu:Symfony2 i Assetic - cssrewrite działa idealnie dla dev, nie dla prod

{% stylesheets 'bundles/majorproductionssewingdivasite/css/*.css' filter='cssrewrite' %} 
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}" /> 
{% endstylesheets %} 

W dev, pozwala mi korzystać z ikonek obraz bez żadnych problemów. Powstały URL do mojego ikonki jest:

http://localhost/diva/web/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg

Ale, prod, zostaje odwzorowany na:

http://localhost/diva/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg

zauważyć brak katalogu stron.

Wygenerowany kod w pliku CSS powinien być taki, jak powinien, a wszystkie moje pliki CSS (zarówno "elementy" dewelopera, jak i sfinalizowany zrzut aktywów) znajdują się pod numerem web/css/. Jakieś pomysły, dlaczego środowisko prod opuszcza katalog stron?

EDIT: co dziwne jest to, że zarówno dev i prod generować ten sam adres URL w CSS samego:

url('../../bundles/majorproductionssewingdivasite/images/diva-sprites.jpg')

Odpowiedz

20

rozwiązaniem jest zrzucić aktywa w środowisku produkcyjnym:

$ app/console assetic:dump --env=prod 
+7

To jest poprawna odpowiedź. Ale możesz najpierw wyczyścić pamięć podręczną 'php app/console cache: clear --env = prod'. Przesłanie plików zasobów przed wyczyszczeniem pamięci podręcznej nie rozwiązało problemu. Jestem trochę nowy w Symfony2, ale z tego, co właśnie doświadczyłem, wydaje się zrzucać pliki zasobów z pamięci podręcznej, a nie z plików fizycznych. – cartbeforehorse

+0

OMG, jak mogę tego przegapić @ _ @ – GusDeCooL

0

W trybie debugowania program Assetic 1.1 wydaje się również przepisywać CSS nawet wtedy, gdy nie ma go w tagu {% stylesheets%}. Warto więc sprawdzić, czy jest tam, gdy wyłączasz debugowanie w produkcji.

9

Pamiętaj wyczyścić pamięć podręczną

php app/console cache:clear --env=prod --no-debug 

berore

php app/console assetic:dump --env=prod --no-debug 
1

Należy również pamiętać, aby odpowiedniej assetic configure, w swoim config_prod.yml ustawione jak poniżej:

assetic: 
    use_controller: false 

EDIT: Jak powiedział w Symfony docs (właściwie w rozdziale odnosi się do środowiska dev): powiedzieć Symfony powstrzymać próby przetworzenia tych plików dynamicznie

+0

Proszę podać kilka dodatkowych informacji, aby odpowiedź była pełna – amonk

+0

Masz rację, ale zwykle konfiguracja jest już 'use_controller: '% kernel.debug%'' – Arno

Powiązane problemy