Prerender.io没有缓存页面

Die*_*erg 6 seo node.js prerender express angularjs

我用AngularJS和expressJS后端制作了一个应用程序.现在我想让它可抓取,我发现prerender.io.我认为我已经完成了一切正确的bur因为某些原因我在prerenderer仪表板中没有看到任何统计信息.

在我的app.configure函数中,我包含了如下标记:

app.use(require('prerender-node').set('prerenderToken', 'my-token'));
Run Code Online (Sandbox Code Playgroud)

在我的HTML中,我已经包含了元片段标记:

<meta name="fragment" content="!">
Run Code Online (Sandbox Code Playgroud)

我做的最后一件事是告诉AngularJS使用hashprefix:

$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,如果我参考文档,我得不到正确的结果.下面你可以看到它应该做什么:

Google会向您的服务器发送请求,如下所示:

http://www.example.com/?_escaped_fragment_=/user/123

你把网址变成了这个:

http://www.example.com/#!/user/123

出于某种原因,如果我尝试这个,它仍然会添加#!标志添加了URL的结尾,所以如果我请求我的应用程序的URL像谷歌我得到这个:

http://www.my-website.com/?_escaped_fragment_=#!/home

所以它不会替换url中的哈希值.我认为这是我的问题的原因.

提前致谢!

编辑 - 如果我例如添加一个额外的路线,那么它的工作原理:

app.get('/', function (req, res) {
    res.sendfile('./public/index.html'); 
});

app.get('/test', function (req, res) {
    res.sendfile('./public/index.html'); 
});
Run Code Online (Sandbox Code Playgroud)

'/'不上班路线'/test'的路线不工作.

Die*_*erg 3

好吧,我解决了我的问题。该'/'路线从未被调用,因为我的 webpublic 文件夹中有一个 index.html 文件。我将其重命名为 public.html 并更改了'/'获取该文件而不是 index.html 文件的路径。

app.get('/', function (req, res) {
    res.sendfile('./public/public.html');
});
Run Code Online (Sandbox Code Playgroud)