我想用#!令我可以抓取我的GWT应用程序的令牌,如下所述: http://code.google.com/web/ajaxcrawling/ 有一个GWT样本应用程序可以在线使用,例如: http://gwt.google.com/samples/Showcase/Showcase.html#!CwRadioB
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文件,但我不确定.
(注意:我考虑过检查随GWT SDK提供的Showcase应用程序,但不幸的是它似乎不支持在_escaped_fragment_上提供静态文件而且它不使用#!标记..)
如果你想使用web.xml,那么我认为它不适用于servlet-mapping,因为url-patterns忽略了get参数. (不是100%肯定,如果有另一种方法可以实现这一点.)您当然可以将Showcase.html映射到servlet,并在该servlet中根据get参数“_escaped_fragment_”决定要执行的操作.但是调用Servlet只是为了为大多数请求提供静态页面而言有点贵(不是太糟糕,但仍然如此.如果你确定它没有改变,你可以设置缓存头).
或者您可以在服务器前面安装Apache或其他东西 – 但我明白,我也不想这样做.也许你的JavaEE服务器(你使用的是BTW?)在请求传递给Web容器之前提供了一些URL过滤机制 – 我也想知道这一点!