Обеспечение возможности поиска приложения GWT поисковой системой - PullRequest
8 голосов
/ 12 марта 2010

Я хочу использовать токен #!, чтобы сделать возможным просмотр моего приложения GWT, как описано здесь: http://code.google.com/web/ajaxcrawling/

В сети есть пример приложения GWT, которое использует это, например: http://gwt.google.com/samples/Showcase/Showcase.html#!CwRadioButton

Будет отображать следующую статическую веб-страницу для googlebot: http://gwt.google.com/samples/Showcase/Showcase.html?_escaped_fragment_=CwRadioButton

Я хочу, чтобы мое приложение GWT делало что-то подобное. Короче говоря, я хотел бы использовать другой вид страницы всякий раз, когда в URL-адресе обнаружен параметр _escaped_fragment_.

Что я должен изменить, чтобы сервер обслуживал что-то еще (статическую страницу или страницу, динамически генерируемую через браузер без заголовка, такой как HTML Unit )? Я предполагаю, что это может быть файл web.xml, но я не уверен.

(Примечание: я думал о проверке приложения Showcase, поставляемого с GWT SDK, но, к сожалению, оно не поддерживает статические файлы на _escaped_fragment_ и не использует маркер #! ..)

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

нашел мой ответ! Пример Showcase, поддерживающий просматриваемые гиперссылки, находится в следующей ветке: http://code.google.com/p/google-web-toolkit/source/browse/branches/crawlability/samples/showcase/?r=7726

Определяет фильтр в web.xml для перенаправления URL-адресов с токеном _escaped_fragment_ на вывод модуля HTML.

2 голосов
/ 12 марта 2010

Если вы хотите использовать web.xml, то я думаю, что он не будет работать с сервлет-отображением, потому что шаблоны url игнорируют параметры get. (Не уверен на 100%, если есть другой способ сделать это возможным.)

Конечно, вы можете отобразить Showcase.html на сервлет, и в этом сервлете решить, что делать, основываясь на параметре get "_escaped_fragment_". Но вызывать сервлет немного дороже, просто чтобы обслуживать статическую страницу для большинства запросов (не так уж плохо, но все же. Вы можете установить заголовки кэша, если уверены, что он не меняется).

Или у вас может быть Apache или что-то еще перед вашим сервером - но я понимаю, что мне бы тоже не хотелось этого делать. Может быть, ваш сервер JavaEE (каким вы используете BTW?) Предоставляет какой-то механизм фильтрации URL-адресов перед передачей запроса в веб-контейнер - я тоже хотел бы знать это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...