我用 AngularJS 制作了一个带有 expressJS 后端的应用程序。现在我想让它可以抓取,我找到了prerender.io。由于某种原因,我认为我已经完成了所有正确的 bur,我在 prerenderer 仪表板中看不到任何统计信息。
在我的 app.configure 函数中,我包含了如下令牌:
app.use(require('prerender-node').set('prerenderToken', 'my-token'));
在我的 HTML 中,我包含了元片段标签:
<meta name="fragment" content="!">
我做的最后一件事是告诉 AngularJS 使用哈希前缀:
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
但是由于某种原因,如果我参考文档,我不会得到正确的结果。下面你可以看到它应该做什么:
Google 向您的服务器发送请求,如下所示:
http://www.example.com/?_escaped_fragment_=/user/123
你把 url 变回这个:
出于某种原因,如果我尝试这样做,它仍然会添加 #! 标志添加 URL 的末尾,所以如果我请求我的应用程序的 URL,如谷歌,我会得到:
所以它不会替换 url 中的哈希值。我认为这是我的问题的原因。
提前致谢!
编辑 - 例如,如果我添加一条额外的路线,那么它可以工作:
app.get('/', function (req, res) {
res.sendfile('./public/index.html');
});
app.get('/test', function (req, res) {
res.sendfile('./public/index.html');
});
路线'/'
不起作用'/test'
路线确实起作用。