* РБК — новости

* *

Блог разработчиков Yawd - оптимизированные для SEO имена изображений с помощью sorl-thumbnail и Django

При работе с Django я склонен использовать sorl-миниатюр все больше и больше. Это быстрый и простой способ создания миниатюр изображений для вашего приложения. Фактически, я использую его почти на каждом теге img в своих шаблонах, чтобы гарантировать, что загружаемые пользователем изображения будут соответствовать разметке страницы. Но URL-адреса, которые генерирует приложение, имеют вид http://media.example.com/cache/9f/0c/9f0c98435b16bcea2b9ead87.jpg. За исключением того, что они не очень привлекательны, такие URL-адреса являются SEO-убийцами.

От Правила публикации изображений в Google Я подчеркиваю следующее:

  • "Имя файла может дать Google подсказки о предмете изображения. Попробуйте сделать свое имя файла хорошим описанием предмета изображения. Например, my-new-black-kitten.jpg намного более информативен, чем IMG00023 .JPG. Описательные имена файлов также могут быть полезны для пользователей: если мы не сможем найти подходящий текст на странице, на которой мы нашли изображение, мы будем использовать имя файла в качестве фрагмента изображения в наших результатах поиска. "
  • «Рассмотрите возможность структурирования каталогов так, чтобы похожие изображения сохранялись вместе. Например, у вас может быть один каталог для миниатюр и другой для полноразмерных изображений; или вы можете создать отдельные каталоги для каждой категории изображений (например, вы можете создать отдельные каталоги для Гавайев, Ганы и Ирландии в вашем каталоге путешествий). "

Хорошим способом реализован sorl-thumbnail, предоставляющий полезную документацию по использованию приложения. Как указано в документации, вы можете использовать THUMBNAIL_PREFIX, чтобы выбрать папку, отличную от кеша /, для хранения миниатюры. Это изменит папку миниатюр с http://media.example.com/cache/9f/0c/9f0c98435.jpg на http://media.example.com/images/9f/0c/9f0c98435.jpg. Это лучше, но имена файлов, не поддерживающие SEO, все еще там. Наконец, я заметил настройку THUMBNAIL_BACKEND, которая позволяет нам переопределить способ генерации имен файлов по умолчанию. После прочтения исходного кода sorl-thumbnail я придумал следующий простой класс:

import os, re from sorl.thumbnail.base import ThumbnailBackend из django.template.defaultfilters import slugify из класса параметров импорта django.conf Класс импорта SEOThumbnailBackend (ThumbnailBackend): "" "Пользовательский бэкэнд для имен файлов / URL-адресов, удобных для SEO." "" def _get_thumbnail_filename (self, source, geometry_string, options): "" "Вычисляет имя файла назначения." "" split_path = re .sub (r '^% s% s?'% (source .storage .path (''), os .sep), '', source .name) .split (os .sep) split_path .insert (- 1, geometry_string) # попытка убрать имя файла, чтобы сделать его удобным для SEO split_name = split_path [- 1] .split ( '.') try: split_path [- 1] = '% s. % s '% (slugify ('. '. join (split_name [: - 1])), split_name [- 1]), за исключением: #on не удается сохранить исходное имя файла pass path = os .sep .join (split_path) #if путь уже начинается с THUMBNAIL_PREFIX. Не объединяйте PREFIX. Таким образом, мы избегаем использования URL-адреса, например /images/images/120x120/my.png, если не путь .startswith (settings .THUMBNAIL_PREFIX): вернуть '% s% s' % (settings .THUMBNAIL_PREFIX, path) путь возврата

Метод _get_thumbnail_filename () выполняет вычисление относительного пути к файлу и вставляет целевые измерения в целевое имя пути. Например, скажем, мы хотим создать миниатюру 120x120 для файла '/ home / django / project / media / polls / Question for the Big приз.jpg' . Основываясь на корневом пути хранилища, мы рассчитываем относительный путь (например, «опросы / вопрос для большого выигрыша. Jpg»), вставляем измерения в путь - чтобы убедиться, что мы генерируем конкретные пути для разных измерений (например, «polls / 120x120 /»). Вопрос к Большому призу.jpg '), слагайте имя файла, чтобы сделать его более удобным для SEO (например,' polls / 120x120 / question-for-the-big-приз.jpg ') и, наконец, добавьте THUMBNAIL_PREFIX. Возвращаемый путь должен быть «images / polls / 120x120 / question-for-the-big-pri.jpg».

Примечание: использование slugify требует, чтобы вы не загружали изображения с почти одинаковыми именами файлов (например, «image 1 1.jpg» и «image 1-1.jpg», потому что вы в конечном итоге будете использовать один и тот же эскиз для обоих файлов! Если вы действительно Если у вас есть такие изображения (в любом случае, это не рекомендуется), вы можете просто удалить часть слуги из приведенного выше кода.

Наконец, мы должны включить sorl-thumbnail, чтобы использовать наш бэкэнд:

THUMBNAIL_BACKEND = 'my_app.my_module.SEOThumbnailBackend' THUMBNAIL_PREFIX = 'images /'R '^% s% s?

Реклама

Популярные новости

Агентство по эскорт услугам
У многих слово «эскорт» ассоциируется с элитным сопровождением, дорогими машинами и длинноногими красавицами-моделями, которых богатые владельцы крупных фирм берут с собой на светские рауты в качестве

Франшиза страхового агентства
К Вашему вниманию франшиза страхового агентства — Точка Страхования. Основными направлениями деятельности являются реализация полисов ОСАГО и КАСКО. Что входит в франшизу• Техническая поддержка наших

Федеральное агентство по туризму
Сафонов Олег Петрович

Украинские новости информационное агентство
© UNIAN.NET, 1998 - 2017 Все права соблюдены. Согласно статье 26 Закона Украины "Об информационных агентствах" право собственности на продукцию информационного агентства охраняется

Донецкое агентство новостей
Декабрь 14, 2018 12:25 Фото: Минкультуры ДНР. Донецк, 14 дек – ДАН. Почти 3800 человек за три с лишним месяца посетили в Донецке выставку «Великая Отечественная война в цифрах и фактах», посвященную

Про затвердження Порядку організації та проведення особистого прийому громадян у Державному агентстві резерву України, Міністерство економічного розви
МІНІСТЕРСТВО ЕКОНОМІЧНОГО РОЗВИТКУ І ТОРГІВЛІ УКРАЇНИ 24.09.2012  № 1041 Зареєстровано в Міністерстві |юстиції України 9 жовтня 2012 р. за № 1703/22015 Про затвердження Порядку організації та проведення

Сегодня в Информагентстве «НАШ ПРОДУКТ» состоялся круглый стол на тему: «Каков диагноз больничных касс?»
04 ноя 2010, 17:28    admin 0 комментариев    2 396 просмотров Участники мероприятия активно обсуждали вопросы создания больничных касс в Киеве с начала 2011 года, откуда

Федеральное агентство по рыболовству
  Официальное наименование Федеральное агентство по рыболовству   Официальное сокращенное наименование Росрыболовство   Действует на основании Положения, утвержденного Постановлением

15 лучших печатных реклам 2013 года
Креативные агентства разрабатывают огромное количество разных рекламных кампаний: одни удивляют своей оригинальностью и свежими идеями, другие — шокируют эпатажными образами. Но несмотря на разнообразие

Совместный проект Профессионалов.ru и "Секрета Фирмы" - "Банк решений". Кейс четырнадцатый - "Сеть без дыр"... — Бизнес-клуб
Уважаемые профессионалы, чуть более года назад мы запустили совместный с ведущим деловым журналом «Секрет Фирмы» проект по решению задач из реальнойбизнес-практики «Банк решений». Многие из вас уже успели


Реклама

Календарь новостей

Реклама

Архив новостей

Реклама