Zainstalowałem Magento 2 i ustawiłem tryb programisty, a następnie zainstalowałem jeden moduł zawierający pliki css i js. Moduł działa dobrze, a pliki css i js są renderowane z folderu pub / static. Teraz dokonałem zmian css w pliku css katalogu modułu i uruchom polecenie
php bin/magento setup:static-content:deploy
ale Magento nie wprowadza nowych zmian w plikach css pub / static, więc otrzymuję starą zawartość pliku css. Czy ktoś wie, jak zregenerować cały plik css w folderze pub / static?
magento2
css
deploy
static-content-deploy
Chirag Dodia
źródło
źródło
.htaccess
plik wpub/static
folderze, aby wiedział, jak dowiązać pliki, jeśli usunąłeś folder pub / static, którego.htaccess
teraz brakujeOdpowiedzi:
Przed usunięciem pub / static wykonaj kopię zapasową pub / static / .htaccess i przywróć ją ponownie. w przeciwnym razie wszystkie css i js pokażą błąd 404!
pub/static
[Zachowaj kopię zapasową pliku .htaccess i skopiuj go ponownie]var/cache
var/composer_home
var/generation
var/page_cache
var/view_preprocessed
php bin/magento setup:static-content:deploy
źródło
odpowiedzi tutaj nie wspominają, że nie należy usuwać pliku .htaccess w folderze pub / static.
aby usunąć wszystkie pliki oprócz .htacces, wejdź do katalogu pub / static i uruchom
wtedy możesz biec
źródło
Właśnie usunąłem pliki css z
pub/static
folderu i uruchom polecenie:Wygeneruje ponownie ten sam plik z najnowszymi zmianami.
źródło
Ponieważ pytanie dotyczy
js and css
aktualizacji w Magento 2 w trybie programisty .pub/static/frontend/namespace/theme/ ... module/js/...
usuń ten sam plik , aby po odświeżeniu strony wygenerować nowy plik JS w folderze pub.Ustaw motyw w Magento
...\dev\tools\grunt\configs\themes.js
Sklonuj dowolny motyw przykładowy luma do motywu i nadaj nazwę przypuszczając, że xyz
W folderze głównym zmień nazwę pliku: Gruntfile.js.sample na Gruntfile.js
W folderze głównym zmień nazwę pliku: package.json.sample na package.json
Musisz mieć chrząknięcie w folderze witryny, w przeciwnym razie zainstaluj za pośrednictwem npm
Otwórz wiersz polecenia z uprawnieniami administratora
Przejdź do folderu witryny w CMD i kliknij polecenie Hit
grunt exec:theme
po raz pierwszy po wdrożeniu motywuWtedy za
grunt less:theme
każdym razem, gdy wprowadzimy jakieś zmiany w mniejszym stopniuJeśli robisz często zmiany w mniejszym użyciu
grunt watch
, to automatycznie trafigrunt less:theme
źródło
Prosty sposób 1
W Administratorze Magento. Idź do
System > Tools > Cache Management
i kliknij Opróżnij pamięć podręczną plików statycznych .Prosty sposób 2
Jeśli właśnie zmieniłeś plik css, który już istnieje , musisz po prostu usunąć odpowiedni plik
pub/static
, a następnie po odświeżeniu strony wygeneruje on nową wersję pliku css. Działa w trybie programisty .Ogłoszenie
Podczas tworzenia nowego pliku, zamiast modyfikowania istniejącego pliku, może być konieczne, aby wyczyścić pamięć podręczną
php bin/magento cache:flush
.Tryb domyślny i tryb programisty nie wymagają wdrażania plików widoku statycznego , ponieważ pliki statyczne są generowane dynamicznie, a nie materializowane. (Odniesienia: Informacje o trybach Magento )
W trybie produkcyjnym możesz także potrzebować,
php bin/magento setup:static-content:deploy
aphp bin/magento cache:flush
ja nie próbuję jeszcze trybu produkcyjnego .źródło
Ok, więc na podstawie tego, co przeczytałem w różnych innych postach i moim osobistym doświadczeniem jest proces regeneracji CSS lub dowolnej zawartości statycznej:
Spowoduje to wymazanie wszystkich niezbędnych plików pamięci podręcznej / generacji / etc bez usuwania wszystkiego, czego faktycznie potrzebujesz.
Spowoduje to ponowne skompilowanie plików. W końcu:
Po ostatnim poleceniu wszystko powinno być nowe i świeże, wystarczy odświeżyć stronę.
----- Notatki ------
1) Zanim to zrobisz, upewnij się, że Twoje uprawnienia do plików i właściciel: grupa użytkowników są ustawione poprawnie, być może będziesz musiał porozmawiać o nich z administratorem systemu.
2) Jeśli polecenie setup: upgrade nie powiedzie się, może usunąć pliki i nie będzie możliwe zapisanie nowych, tak jak w moim przypadku z powodu uprawnień do plików. Może to uszkodzić twoją witrynę, po prostu usunąć uprawnienia, a następnie ponownie uruchomić polecenie.
3) Nie znalazłem (jak dotąd) sposobu ponownej kompilacji określonego motywu lub pliku (byłby bardzo pomocny, gdyby ktoś znalazł sposób) bez pisania całkowicie niestandardowego skryptu
Jeśli ktoś wie o czymś lepszym, daj mi znać, ponieważ 12 minut kompilacji plików, ponieważ musiałem wprowadzić pewne zmiany css, jest bardzo kiepskim projektem w moich oczach.
--- Edytować ---
Magento 2 ma w sobie Grunta, co sprawia, że odświeżanie plików CSS / LESS jest nieskończenie łatwiejsze, jeśli poświęcisz trochę czasu na jego skonfigurowanie. Większość plików istnieje, ponieważ pliki .sample po prostu usuwają rozszerzenie .sample, skonfiguruj plik themes.js w folderze / dev / tools / grunt / configs. Następnie, gdy musisz odświeżyć swoje MNIEJ pliki, po prostu uruchom pomruk mniej: - motyw - z wiersza poleceń.
Zasób: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/css-topics/css_debug.html
źródło
nie zapomnij uruchomić
grunt exec:theme
,grunt less:theme
poleceń, gdzietheme
jest tematem masz zadeklarowane wthemes.js
pliku z folderu config chrząknięcia (to wszystko jest w podręczniku programisty) i kiedy masz Magento w trybie dewelopera nie należy uruchamiać polecenia statycznego wdrożyć,Magento2
pracuje zSymlinks
źródło
Uruchom następujące polecenia w folderze głównym Magento :
źródło
Jest jedna ważna uwaga na temat tego pytania, której większość odpowiedzi wyraźnie nie wskazuje. W twoim przypadku (z konfiguracją, której używasz) powodem, dla którego twoje zmiany CSS nie są zauważane podczas ponownego generowania CSS do
pub/static
folderu, jest to, że nie usuwasz zawartościvar/view_preprocessed
reżysera. Wewnątrz tego katalogu znajdują się buforowane wersje Twojego CSS, które są pobierane dopub/static
folderu po uruchomieniuphp bin/magento setup:static-content:deploy
polecenia.Dlatego podczas ponownej kompilacji Magento najpierw sprawdzi
var/view_preprocessed
folder w pamięci podręcznej CSS. Jeśli ten folder jest pusty, przejrzy pliki motywów i ściągnie ten CSS do kompilacji.Te ustawienia są konfigurowalne, więc istnieje wiele sposobów na dotarcie do miejsca docelowego, które zmienią ścieżkę, którą musisz wybrać. Ale w celu rozwiązania określonej konfiguracji:
Usuń pliki z
pub/static
folderu:rm -rf pub/static/*
Usuń pliki z
var/view_preprocessed
folderu:rm -rf var/view_preprocessed/*
Ponownie skompiluj folder statyczny publikacji:
php bin/magento setup:static-content:deploy
Wyczyść pamięć podręczną, jeśli jest włączona:
php bin/magento cache:clean
Odśwież przeglądarkę.
źródło
app/etc/di.xml
pliku di.xml ( ). Ale podczas testów miałem mieszane wyniki. Jest trochę bardziej tutaj w drugiej odpowiedzi: magento.stackexchange.com/questions/116605/...Usuń folder zawierający motyw w
pamięci podręcznej pub / static / frontend wyczyść Pamięć podręczną
można wykorzystać do obejrzenia zastosowania arkuszy stylów. Przeczytaj tutaj
źródło
pub/static
777 pozwoleniephp bin/magento setup:static-content:deploy
Zobaczysz nowy css.
UWAGA:
Daj odpowiednie uprawnienia do folderu i pliku.
Mam nadzieję, że to Ci pomoże.
źródło
Nie możesz po prostu opróżnić statycznej pamięci podręcznej w panelu administracyjnym, a następnie
źródło
Upewnij się, że używasz trybu programisty.
Następnie wykonaj następujący kod:
Odśwież stronę z interfejsem. Te kroki rozwiązały mój problem.
źródło
Możesz jednak dodać flagę
-f
lub--force
do polecenia setup.Przykład:
źródło
Upuszczę tutaj moją kroplę mądrości.
Używam
cache_fly.sh
skryptu bash, który zasadniczo:UWAGA: Dodałem echo, aby pokazać mi, ile czasu w moim życiu zmarnowałem czekając na jego uruchomienie. Również
./magento
jest skrypt do zrobieniaphp bin/magento
lub zadzwoń samo wewnątrz pojemnika Döcker, jeśli jest stosowany doker można zrobić swoje lub punktphp bin/magento
, ale jeśli czytasz to należy wiedzieć, co mówię, a jeśli nie, należy uruchomić z prośbą o pomoc.źródło
Mała adaptacja do mojej skrzynki
źródło