angularjs – 由Google索引的角度应用程序

前端之家收集整理的这篇文章主要介绍了angularjs – 由Google索引的角度应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我觉得我已尝试过每一个选项,没有任何成功.首先让我列出我尝试过的选项:

使用prerender与Apache:

我已尝试使用以下步骤:

在角度:

$locationProvider.html5Mode(true);

在HTML中,添加此元标题

<head>
    <Meta name="fragment" content="!">
</head>

配置Apache:

RewriteEngine On
# If requested resource exists as a file or directory
  # (REQUEST_FILENAME is only relative in virtualhost context,so not usable)
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    # Go to it as is
    RewriteRule ^ - [L]

  # If non existent
    # If path ends with / and is not just a single /,redirect to without the trailing /
      RewriteCond %{REQUEST_URI} ^.*/$
      RewriteCond %{REQUEST_URI} !^/$
      RewriteRule ^(.*)/$$1 [R,QSA,L]      

  # Handle Prerender.io
    RequestHeader set X-Prerender-Token "YOUR_TOKEN"

    RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest [NC,OR]
    RewriteCond %{QUERY_STRING} _escaped_fragment_

    # Proxy the request
    RewriteRule ^(.*)$http://service.prerender.io/http://%{HTTP_HOST}$1 [P,L]

  # If non existent
    # Accept everything on index.html
    RewriteRule ^ /index.html

这完全没有办法:Google无法读取我的子页面.

使用Node / Phantomjs来渲染页面

var express = require('express');
var app = module.exports = express();
var phantom = require('node-phantom');
app.use('/',function (req,res) {
    if (typeof(req.query._escaped_fragment_) !== "undefined") {
        phantom.create(function (err,ph) {
            return ph.createPage(function (err,page) {
                return page.open("https://system.dk/#!" + req.query._esca$
                    return page.evaluate((function () {
                        return document.getElementsByTagName('html')[0].innerHT$
                    }),function (err,result) {
                        res.send(result);
                        return ph.exit();
                    });
                });
            });
        });
    } else
        res.render('index');
});

app.listen(3500);
console.log('Magic happens on port ' + 3500);

在这里,我创建了这个站点,然后在我的Apache配置中添加了一个代理,以便所有请求都指向我的域端口3500.

这没有工作,因为它不能渲染索引,当我终于得到它发送JavaScript不会呈现的HTML页面.

以下自定义快照指南

然后我遵循这个指南:

http://www.yearofmoo.com/2012/11/angularjs-and-seo.html

然而,这需要我自己制作一些不是我正在寻找的东西,并且烦人的维护.加上make-snapshot在我的服务器上不起作用.

理论上你不必先将你的页面推送到谷歌搜寻器.他们现在解析javascript. http://googlewebmastercentral.blogspot.ca/2014/05/understanding-web-pages-better.html

Google解析我的angularJS网站很好. https://www.google.nl/search?q=site%3Atest.coachgezocht.nu

使用$locationProvider.html5Mode(true);和:

RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !index
    RewriteRule (.*) index.html [L]

猜你在找的Angularjs相关文章