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

* *

Блог разработчиков 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?

Реклама

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

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

Агентство недвижемоти
Здравствуйте товарищи! С вами Саша Борисов! В своей прошлой статье « Пишу, пишу, а посетителей все нет и нет» я говорил о том, как писать статьи правильно, соблюдая все базовые правила seo

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

Детективные агентства киева
На страницах нашего сайта Вы найдете много полезной информации, которая необходима в повседневной жизни. Вы имеете возможность обратиться к нам, оставив заявку либо позвонить по одному из номеров, указанных

Федеральное агентство по техническому регулированию
В 2003 году, 1 июля, вступил в действие ФЗ, определяющий основы технического регулирования. В рамках закона создана новая система установления норм для производственных процессов, продукции, услуг и работ.

Btl агентство полного цикла
Нередко рекламные услуги заказываются одновременно у нескольких поставщиков: одна фирма выполняет полиграфию, другая проводит исследование рынка, третья следит за общей успешностью проводимых мероприятий.

Русское агентство новостей
Русское Агентство Новостей (РуАН) создано, как альтернатива разнузданному, повсеместному шабашу, развёрнутому в СМИ равнодушными, недалёкими, продажными и недружественными к нормальным людям персонажами,

Мегаполис сервис агентство недвижимости
Агентство недвижимости «Мегаполис Сервис», предлагает все виды риэлторских услуг на рынке недвижимости. Купля-продажа, обмен квартир, домов, комнат, земельных участков, коттеджей, коммерческой недвижимости.

Сдать квартиру через агентство
Почему стоит держаться подальше от агентств недвижимости Что бы ответить на первый вопрос и понять почему идея сдать квартиру через агентство не самая блестящая, мне придется процитировать книгу “6

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


Реклама

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

Реклама

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

Реклама