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
你把网址变成了这个:
出于某种原因,如果我尝试这个,它仍然会添加#!标志添加了URL的结尾,所以如果我请求我的应用程序的URL像谷歌我得到这个:
所以它不会替换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'的路线不工作.
好吧,我解决了我的问题。该'/'路线从未被调用,因为我的 webpublic 文件夹中有一个 index.html 文件。我将其重命名为 public.html 并更改了'/'获取该文件而不是 index.html 文件的路径。
app.get('/', function (req, res) {
res.sendfile('./public/public.html');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2969 次 |
| 最近记录: |