Jak znaleźć nieużywane obrazy i style CSS na stronie internetowej? [Zamknięte]

117

Czy istnieje metoda (inna niż prób i błędów), której mogę użyć, aby znaleźć nieużywane pliki obrazów? A co z deklaracjami CSS dla identyfikatorów i klas, których nawet nie ma w witrynie?

Wygląda na to, że istnieje sposób na napisanie skryptu, który skanuje witrynę, profiluje ją i sprawdza, które obrazy i style nigdy nie są ładowane.

Jon Galloway
źródło
Hej Jon ... przed chwilą (po przeczytaniu pytania i odpowiedzi) zobaczyłem, że to ty zadałeś pytanie. 4 lata później szukam dokładnie tego samego! StackOverflow jest naprawdę niesamowity ... Swoją drogą: po prostu uwielbiam odznakę "Działa na moim komputerze", którą masz w swoim profilu ... Myślę, że pożyczę to! : D
Leniel Maccaferri
4
Więcej informacji na stackoverflow.com/questions/135657/ ...
Lamy
Właśnie zredagowałem to pytanie, aby pasowało do zasad SO. Przynajmniej mam taką nadzieję, bo sam naprawdę potrzebuję odpowiedzi!
SMBiggs
Wypróbuj gulp-delete-unused-images dla obrazów
Louis Philippe,

Odpowiedzi:

67

JestByło to rozszerzenie do Firefoksa znajdzieznaleziono nieużywane selektory CSS na stronie. Tomamiał możliwość spajania całej witryny. Wersja 3.01.0powinien może działać z nowszymi wersjami przeglądarki Firefox.

http://www.brothercake.com/dustmeselectors/

A oto inna opcja:

https://addons.mozilla.org/en-US/firefox/addon/css-usage/

Patrick McElhaney
źródło
2
Tak, to będzie działać tylko na starszej wersji FireFox, ale to: Użycie CSS - dodatek Firefox jest taki sam i będzie działał również z najnowszą wersją.
Andrea Salicetti,
3
Żadna z nich nie działa w 2018 r.
Lonnie Best
74

Nie musisz płacić żadnej usługi sieciowej ani szukać dodatku, masz to już w Google Chrome pod F12 (Inspector)->Audits->Remove unused CSS rules

Zrzut ekranu:Zrzut ekranu

Aktualizacja: 30 czerwca 2017 r

Teraz Chrome 59 zapewnia pokrycie kodu CSS i JS . Zobacz https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage

wprowadź opis obrazu tutaj

Șerban Ghiță
źródło
3
To świetnie, dzięki za wskazówkę!
Brian
4
Dobrze jest korzystać z istniejących narzędzi, ale to skanuje tylko załadowaną stronę, a nie całą witrynę?
Mark Cooper
7
Wielkie dzieki. Uważaj na responsywne strony internetowe, ponieważ będziesz musiał załadować je ponownie dla różnych rozmiarów, aby wiedzieć, że co najmniej jeden z tych stylów nie jest używany. Wykrywa tylko style przeglądanej rzutni.
micah
1
Czy jest jakiś sposób, aby uzyskać przycięty plik arkuszy stylów, zamiast ręcznie wykonać proces usuwania?
Daniel Sokolowski
2
Może to nie być odpowiednia opcja w przypadku witryn, które kompresują cały plik css w jednym pliku. Jeśli skontrolujesz określoną stronę, pokaże ona wiele nieużywanych CSS, ale te style będą używane na innych stronach. Więc moim zdaniem audyt pojedynczej strony nie jest dobrym rozwiązaniem.
SaurabhM
19

Na poziomie pliku:

użyj wget do agresywnego przeszukiwania witryny, a następnie przetwórz dzienniki serwera http w celu uzyskania listy plików, do których uzyskano dostęp, porównaj to z plikami w witrynie

diff \
 <(sed some_rules httpd_log | sort -u) \
 <(ls /var/www/whatever | sort -u) \
 | grep something
BCS
źródło
5
+1 za dodatkowe maniakiem wiersza poleceń!
ngeek
2
Opcja mirror wget to dobry sposób na automatyczne usuwanie nieużywanych i nieużywanych plików, tj wget -m <your site>. Arkusze stylów należy jednak najpierw usunąć z nieużywanych selektorów - wygląda na to, że jest to dobry kandydat do automatycznego tego zadania: developers.google.com/speed/pagespeed/psol
Daniel Sokolowski
10

CSS Redundancy Checker to narzędzie uruchamiane lokalnie, któremu przekazujesz arkusz stylów i listę adresów URL lub katalog plików HTML. Oto opis podany na stronie narzędzia:

Prosty skrypt, który mając arkusz stylów CSS i plik .txt zawierający adresy URL plików HTML lub katalog plików HTML, dokona iteracji po nich wszystkich i wyświetli instrukcje CSS w arkuszu stylów, które nigdy nie są wywoływane w HTML.

Zasadniczo pomaga zachować odpowiednie i kompaktowe pliki CSS. I jest dość dokładny.

True Soft
źródło
6

Jak zauważył Tim Murtaugh w poście na blogu A List Apart „ Two Tools to Keep Your CSS Clean ”:

csscss

csscss przeanalizuje wszystkie podane przez Ciebie pliki CSS i poinformuje Cię, które zestawy reguł mają zduplikowane deklaracje.

I najbardziej istotne w przypadku pytania:
hel-css

Hel to narzędzie do wykrywania nieużywanych CSS na wielu stronach w witrynie internetowej.

Narzędzie jest oparte na języku JavaScript i działa z poziomu przeglądarki.

Helium akceptuje listę adresów URL dla różnych sekcji witryny, a następnie ładuje i analizuje każdą stronę, aby utworzyć listę wszystkich arkuszy stylów. Następnie odwiedza każdą stronę z listy adresów URL i sprawdza, czy selektory znalezione w arkuszach stylów są używane na stronach. Na koniec generuje raport, który szczegółowo opisuje każdy arkusz stylów i selektory, których nie znaleziono na żadnej z podanych stron.

mg1075
źródło
3

Wydaje mi się, że Adobe Dreamweaver lub Adobe Golive mają funkcję znajdowania zarówno osieroconych stylów, jak i obrazów; nie mogę sobie przypomnieć, który teraz. Prawdopodobnie jedno i drugie, ale cechy były dobrze ukryte.

Polsonby
źródło
1
Tak, w programie Dreamweaver można znaleźć osierocone pliki. Znajduje się w Witryna> Sprawdź łącza, a następnie zmień listę rozwijaną na Osierocone pliki. Uważaj jednak na linki względne i bezwzględne. Po prostu powiedział mi, że wszystkie moje obrazy są osieroconymi plikami, ponieważ rzeczywiste linki wskazywały na aktywne kopie obrazów w Internecie, a nie na lokalne kopie obrazów.
Stuart Young
3

TopStyle posiada zestaw narzędzi do lokalizowania i postępowania z osieroconymi klasami. Zapewnia również raporty o tym, gdzie identyfikatory i klasy są używane w kodzie HTML, umożliwiając szybkie otwieranie i przeskakiwanie do odpowiednich znaczników. Oto notka ze strony internetowej dotycząca tej funkcji:

Raporty dotyczące witryn: zobacz na pierwszy rzut oka, gdzie w Twojej witrynie są używane style. Dowiedz się, gdzie zastosowano klasy stylów, które nie są zdefiniowane w żadnym arkuszu stylów, lub zobacz, które zdefiniowane przez Ciebie klasy stylów nie są używane.

Bardzo przydatne do analizy nieznanych witryn.

Nie znajduje jednak nieużywanych obrazów.

Charles Roper
źródło
Dlaczego ta odpowiedź została odrzucona?
Charles Roper
2

Wersja canary Chrome ma na pasku narzędzi programisty opcję „ Pokrycie CSS” jako jedną z eksperymentalnych funkcji programistycznych. Ta opcja pojawia się w zakładce osi czasu i może być użyta do uzyskania listy nieużywanych CSS.

wprowadź opis obrazu tutaj

Pamiętaj, że musisz również włączyć tę funkcję w ustawieniach paska narzędzi programisty. Ta funkcja prawdopodobnie powinna pojawić się w oficjalnej wersji Chrome.

wprowadź opis obrazu tutaj

Abhinav Galodha
źródło
1

Znalazłem to narzędzie, które działa ze wszystkimi wersjami Firefoksa! Trochę czasu zajmuje nauczenie się, jak to działa, ale po uruchomieniu wydaje się całkiem niezłe. Spowoduje to zapisanie nowej wersji CSS z zaznaczonymi selektorami CSS, dzięki czemu możesz szybko cofnąć, jeśli zajdzie taka potrzeba.

Wykorzystanie CSS - dodatek do przeglądarki Firefox

ja ja
źródło
1

To małe narzędzie zawiera listę reguł CSS używanych przez niektóre pliki HTML.

Tutaj jest na Code Pen

Kliknij Run code snippet, a następnie kliknij, Full pageaby się do niego dostać. Następnie postępuj zgodnie z instrukcjami we fragmencie. Możesz uruchomić go na całej stronie, aby zobaczyć, jak działa z Twoim html / css.

Ale łatwiej jest po prostu dodać do zakładek mój długopis jako narzędzie.

/* CSS CLEANER INSTRUCTIONS
   1. Paste your HTML into the HTML window
   2. Paste your CSS into the CSS window
   5. The web page result now ends with a list of just the CSS used by your HTML!
*/

function cssRecursive(e) {
  var cssList = css(e);
  for (var i = 0; i < e.children.length; ++i) {
    var childElement = e.children[i];
    cssList = union(cssList, cssRecursive(childElement));
  }
  return cssList;
}

function css(a) {
  var sheets = document.styleSheets,
    o = [];
  a.matches = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.msMatchesSelector || a.oMatchesSelector;
  for (var i in sheets) {
    var rules = sheets[i].rules || sheets[i].cssRules;
    for (var r in rules) {
      if (a.matches(rules[r].selectorText)) {
        o.push(rules[r].cssText);
      }
    }
  }
  return o;
}

function union(x, y) {
  return unique(x.concat(y));
};

function unique(x) {
  return x.filter(function(elem, index) {
    return x.indexOf(elem) == index;
  });
};

document.write("<br/><hr/><code style='background-color:white; color:black;'>");
var allCss = cssRecursive(document.body);
for (var i = 0; i < allCss.length; ++i) {
  var cssRule = allCss[i];
  document.write(cssRule + "<br/>");
}
document.write("</code>");

toddmo
źródło
0

Wszystkie wymienione tutaj narzędzia doskonale nadają się do CSS. Nie wiem o programie Dreamweaver & Co. Ale jakiś czas temu stworzyłem mały program, aby pomóc mi uporządkować projekty witryn internetowych

Znajdź-nieużywane-pliki

Nie pomaga w CSS i innych rzeczach, ale zamiast tego w przypadku osieroconych obrazów i innych typów plików.

Mam nadzieję, że to pomoże!

Robert Hoffmann
źródło
0

Helium CSS to świetne narzędzie do tego. Należy jednak zauważyć, że należy uruchomić to narzędzie na rozwojowej lub lokalnej wersji witryny. Jeśli uruchomisz to w wersji produkcyjnej, Twoi goście będą mogli zobaczyć środowisko testowe helu.

https://github.com/geuis/helium-css

http://www.unknownerror.org/opensource/geuis/helium-css

James Aldern
źródło
Hel został już odebrany. To powinien być komentarz do tej odpowiedzi.
Jan Doggen
-1

Aby odpowiedzieć na pytanie dotyczące narzędzia do znajdowania nieużywanych plików graficznych, możesz użyć Xenu Link Sleuth do przeszukiwania witryny w celu znalezienia wszystkich obrazów używanych w witrynie. Następnie Xenu poprosi o dostęp do ftp, aby mógł przeszukać twoje katalogi w celu znalezienia osieroconych plików. Nie używałem go jeszcze na serwerze produkcyjnym, ale wydaje mi się, że warto się temu przyjrzeć.

EDYCJA: Musisz tylko uważać, aby nie usunąć obrazów używanych przez javascript.

Justin Nafe
źródło
Dlaczego głosowanie przeciw?
SMBiggs