gpt4 book ai didi

node.js - Prerender.io 不缓存页面

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:39 27 4
gpt4 key购买 nike

我用带有 expressJS 后端的 AngularJS 制作了一个应用程序。现在我想让它可抓取,我找到了 prerender.io .我认为我所做的一切都是正确的,但由于某种原因我在预渲染器仪表板中看不到任何统计信息。

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

app.use(require('prerender-node').set('prerenderToken', 'my-token'));

在我的 HTML 中,我包含了 meta-fragment 标签:

<meta name="fragment" content="!">

我做的最后一件事是告诉 AngularJS 使用哈希前缀:

$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');

但出于某种原因,如果我引用文档,我没有得到正确的结果。下面你可以看到它应该做什么:

Google sends a request to your server like this:

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

You turn the url back into this:

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');
});

'/' 路由不起作用 '/test' 路由起作用。

最佳答案

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

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

关于node.js - Prerender.io 不缓存页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21375992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com