Как добавить динамические метатеги Facebook в приложении GAE/GWT

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

Мое приложение имеет один HTML файл хоста и использует стандартные MVP/Places/Activities для синтаксического анализа хеш-фрагмента. Он отображает множество похожих кнопок для разных элементов. FB (подтвержденный с помощью инструмента lint) будет читать только статический HTML-адрес главной страницы, поэтому мне нужно будет манипулировать этим, прежде чем он будет возвращен реквестеру (в GWT нет никакой проблемы с этой проблемой).

Я использую Guice-y com.google.inject.servlet.ServletModule, поэтому я мог бы создать что-то вроде:

serve("/fb/*").with(MetaTagAdder.class);

И я мог бы использовать /fb/* для URL-адресов Like. Выложите HTML-страницу хостинга (добавив в динамические метатеги по мере необходимости). Затем файлы *.nocache.js просто переходят в EntryPoint.OnModuleLoad().

Это кажется неуклюжим. У кого-то есть более лучшая идея?

1 ответ

Поэтому я закончил так, и все работает отлично. Создайте сервлет, чьи методы doPost/doGet выписывают ваш html хоста и передают ему параметры. Таким образом, url выглядит примерно так:

http://example.com/fb/mypage.html?foo=baz#place:foo=baz

Затем у вас есть параметры, доступные для создания метатег и т.д.

// the first chunk of the static html
resp.getWriter().println("");

// the dynamic meta tags
resp.getWriter().println("");

// the rest of the static html
resp.getWriter().println("");

Затем, когда вы настраиваете атрибут data-href в своем fb-подобном div, используйте url выше. Также работает для SEO. Соображения для производственных систем:

  • Элементы навигации на сайте должны вернуть пользователя в версию с прямым ходом. Это может быть сложно. Поймите, что строки запроса в HTTP-запросе останутся статичными, а хэш-фрагмент будет реагировать на пользователя.
  • Если у вас ограниченный диапазон параметров и выполняется обработка параметров, используйте memcache в HttpServlet для кэширования полустатических копий html, возвращаемых клиентам.
  • Не кладите вещи в тело, пытаясь разбудить ваш SEO. Сердечная боль лежит в этом направлении.

Я все еще обманываю себя, настраивая это, но на данный момент не вижу никаких пробных мертвых шоу.

licensed under cc by-sa 3.0 with attribution.