我遇到了 prerender.io 的问题。如果我在本地主机上使用 node/express,它工作得很好,但是当我试图让它在谷歌应用程序引擎上使用 java ( https://github.com/greengerong/prerender-java/ ) 时,它会自动重新路由.
当我将其写入浏览器并按 Enter 键时, http://www.example.com/? _escaped_fragment_=/browse/761238167868/
它会自动重定向到 http://www.example.com/?_escaped_fragment_=/browse/761238167868#!/browse
在 app.js 我有以下内容:
module.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/browse', {
templateUrl: 'views/browse.html'
//a lot of .when() ....
}).otherwise({redirectTo: '/browse'});
我认为这是应用引擎服务器或中间件安装的问题,因为它与 node/express 配合得很好。
我需要重写一些东西来让应用引擎处理 hashbangs (#!) 还是什么?
这是我的 web.xml:
<filter>
<filter-name>prerender</filter-name>
<filter-class>com.github.greengerong.PreRenderSEOFilter</filter-class>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>FacebookExternalHit</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit/1.0</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit/1.1</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>Facebot</param-value>
</init-param>
<init-param>
<param-name>prerenderToken</param-name>
<param-value>mytoken</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>prerender</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>