站点地图生成器无法识别角度重定向的URL

时间:2014-01-05 06:26:47

标签: angularjs search-engine sitemap

首先,我是棱角分明的小伙子。 我有一个博客(http://naren.me)在appengine中托管并使用angularjs。

当我在谷歌搜索“naren.me is python”时,我看到搜索结果显示“Loding ...”文本,该文本应该在ng-view加载之前显示。

enter image description here

当我为我的网站生成站点地图时,我根本看不到任何角度重定向的URL。 我错过了什么吗? 这是我的网站的角度app.js文件。 https://github.com/Narengowda/naren.me/blob/master/static/angularBlogFiles/js/app.js

2 个答案:

答案 0 :(得分:1)

谷歌机器人和其他cralwers无法执行javascript,他们将请求您的页面,并只是索引html中的任何内容。 您可以在Google's Crawler Guidelines

了解更多相关信息

您需要做的是向Google和其他搜索引擎提供您网站的静态版本

你有一些方法可以解决这个问题。

付费服务

这是使用您网站的静态版本生成和投放Google的最简单方法,以下是一些提供商 prerender.io Brombone seo4ajax < / strong>,您可以谷歌搜索更多提供商。

他们中的一些人有一个免费的计划,可以更好地满足您的需求。

制作自己的服务以生成静态网页

您可以构建自己的解决方案来生成静态页面learn here

答案 1 :(得分:1)

这样做的新方法是包含在angular.module('app')。config函数中。 (通常是app.js)

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

然后在index.html中你需要

<base href="/#!">
<meta name="fragment" content="!" />
标签之间的

最后,您需要使用以下内容编辑.htaccess(apache):

Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/api
RewriteRule ^.*$ - [NC,L]

# otherwise forward it to index.html 
RewriteRule ^app/(.*) /app/#/$1 [NC,L]