Я работаю над большим проектом с 15 дочерними сайтами и 13 различными страницами схемы. В настоящее время сайт основан на ui.route
для всех страниц, и мои данные установлены по запросу $http
angular. После тестов и испытаний в консоли поиска похоже, что Google не видит все мои страницы, кроме домашней страницы, и данные из запроса $http
не отображаются. Что я делаю неправильно?
Что я делаю до сих пор:
Установите базовый тег в <head>
:
<base href="/" />
Создайте .htaccess:
RewriteEngine On
Options FollowSymLinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]
Добавить в app.config
:
$locationProvider.html5Mode(true);
Пример к моему app.config
:
function createState(name) {
return {
url: '/' + name + '/:id',
templateUrl : 'templates/pages/' + name +'.html',
controller : 'singlePage',
resolve: {
pageData: function(getData, $stateParams) {
var params = $stateParams;
params.type = this.self.name;
return getData.getPageData(params.type, params)
}
}
}
}
.state('info', createState('info'))
.state('news', createState('news'))
.state('event', createState('event'))
$urlRouterProvider.otherwise('/');
$locationProvider.html5Mode(true);
href
всех вашихa
-тегов в HTML-разметке и следит за ними. Если вы используете функцию изменения состояния JavaScript, предоставляемуюui.router
, бот никогда не сможет перейти по этим ссылкам. Он также не распознает изменение маршрута URL-адреса HTML5. -› поэтому никакие страницы не будут сканироваться/индексироваться. - person lin   schedule 31.01.2017