首先,我是棱角分明的小伙子。 我有一个博客(http://naren.me)在appengine中托管并使用angularjs。
当我在谷歌搜索“naren.me is python”时,我看到搜索结果显示“Loding ...”文本,该文本应该在ng-view加载之前显示。
当我为我的网站生成站点地图时,我根本看不到任何角度重定向的URL。 我错过了什么吗? 这是我的网站的角度app.js文件。 https://github.com/Narengowda/naren.me/blob/master/static/angularBlogFiles/js/app.js
答案 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]