Как найти на веб-сайте неиспользуемые изображения и стили CSS?

Есть ли способ (кроме проб и ошибок), который я могу использовать для поиска неиспользуемых файлов изображений? Как насчет объявлений CSS для идентификаторов и классов, которых даже нет на сайте?

Похоже, что есть способ написать сценарий, который сканирует сайт, профилирует его и видит, какие изображения и стили никогда не загружаются.

Больше информации на stackoverflow.com/questions/135657/…

Yasen 05.07.2012 15:52

Попробуйте gulp-delete-unused-images для изображений

Louis Philippe 31.03.2019 00:01
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
122
2
55 828
5

Ответы 5

Я припоминаю, что в Adobe Dreamweaver или Adobe Golive была возможность находить как потерянные стили, так и изображения; не могу вспомнить какой сейчас. Возможно и то, и другое, но особенности были хорошо скрыты.

Да, вы можете найти потерянные файлы в Dreamweaver. Он находится в разделе «Сайт»> «Проверить ссылки», а затем в раскрывающемся списке выберите «Потерянные файлы». Однако будьте осторожны с относительными и абсолютными ссылками. Он просто сказал мне, что все мои изображения являются потерянными файлами, потому что фактические ссылки указывают на живые копии изображений в сети, а не на локальные копии изображений.

Stuart Young 23.04.2015 02:17

На уровне файла:

используйте wget для агрессивного сканирования сайта, а затем обработайте журналы http-сервера, чтобы получить список файлов, к которым был осуществлен доступ, сравните это с файлами на сайте

diff \
 <(sed some_rules httpd_log | sort -u) \
 <(ls /var/www/whatever | sort -u) \
 | grep something

Параметр зеркального отображения wget - хороший способ автоматически удалять неиспользуемые файлы, на которые нет ссылок, например wget -m <your site>. Таблицы стилей должны быть сначала удалены от неиспользуемых селекторов - это похоже на хороший кандидат для автоматической этой задачи: developers.google.com/speed/pagespeed/psol

Daniel Sokolowski 15.12.2013 00:18

Вам не нужно платить какие-либо веб-службы или искать надстройки, они уже установлены в Google Chrome под F12 (Inspector)->Audits->Remove unused CSS rules.

Скриншот: Screenshot

Обновление: 30 июня 2017 г.

Теперь Chrome 59 предоставляет Покрытие кода CSS и JS. См. https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage

Хорошо ли использовать существующие инструменты, но при этом сканируется только загруженная страница, а не весь сайт?

Mark Cooper 29.05.2012 11:53

Отлично, спасибо. Будьте осторожны с адаптивными веб-сайтами, потому что вам придется перезагрузить для разных размеров, чтобы знать, что один или несколько из этих стилей не используются. Он определяет только стили просматриваемого окна просмотра.

micah 26.10.2012 10:30

Это может быть неприемлемым вариантом для сайтов, которые сжимают все свои CSS в один файл. Если вы проведете аудит определенной страницы, она покажет много неиспользуемых CSS, но эти стили будут использоваться на других страницах. Так что, на мой взгляд, аудит отдельной страницы - не лучший вариант.

SaurabhM 10.10.2014 18:35

Этот небольшой инструмент дает вам список правил CSS, используемых некоторыми HTML.

Вот он на Кодовое перо

Щелкните Run code snippet, затем щелкните Full page, чтобы войти в него. Затем следуйте инструкциям во фрагменте. Вы можете запустить его на всю страницу, чтобы увидеть, как он работает с вашим html / css.

Но проще просто добавить в закладки мою кодовую ручку как инструмент.

/* 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>");

В сборке Chrome Canary есть опция на панели инструментов разработчика для Покрытие CSS " в качестве одной из экспериментальных функций разработчика. Эти опции появляются на вкладке временной шкалы и могут использоваться для получения списка неиспользуемых CSS.

Обратите внимание, что вам также необходимо включить эту функцию в настройках на панели инструментов разработчика. Эта функция, вероятно, должна появиться в официальном выпуске Chrome.

Другие вопросы по теме