在GWT中,我需要在URL中使用#,以便从一个页面导航到另一个页面,例如。 www.abc.com/#questions/10245857 但由于这个原因我在共享网址时遇到问题。 Google 抓取工具仅读取 # 之前的网址,即 www.abc.com。
现在我想从我的网址中删除 # 并希望将其保持为 www.abc.com/question/10245857。
我无法这样做。请帮我提供一些链接或代码。 谢谢您
最佳答案
如果您想要不使用哈希的网址,则必须使用 HTML5 pushState
( browser compatibility )。
如果直接使用 History
类,则无法执行此操作;您必须创建自己的使用 pushState
的 History
类,并在代码中使用该类,而不是 GWT 内置类。
如果您使用 Places,那么它会更容易,因为您所要做的就是实现 Historian
而不是使用 DefaultHistorian
;例如https://gist.github.com/tbroyer/1883821
如果您需要支持没有 pushState
的浏览器,那么事情就会变得更加复杂。
不过还有其他选择:
- 您可以使用
#!
并实现必要的服务器端 Hook :https://developers.google.com/webmasters/ajax-crawling/ (有些项目通过在服务器上的 HTMLUnit 伪浏览器中运行 GWT 应用程序来实现此功能;IIRC、GWT-Platform 具有此类功能) - 您可以提供指向您的“地点”的永久链接,就像 Google map 或 Google 网上论坛所做的那样;请参阅https://stackoverflow.com/a/24717441/116472
关于java - GWT 中不带哈希 (#) 的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804979/