Существует множество ресурсов для реализации SEO-дружественных версий приложений AngularJS, конечно. Несмотря на то, что я читал их много раз, я по-прежнему немного неясен в отношении некоторых вещей, особенно в отношении различия между моделями моделей hashbang и HTML5:
-
Для приложений hashbang (
#!
или "HTML4" ) вlocation
поставщике указан следующий параметр:$location.hashPrefix('!');
Этот параметр необходим для режима HTML5? Почему или почему нет?
-
Для приложений режима HTML5 на странице
index.html
включен следующий тегmeta
:<meta name="fragment" content="!">
Является ли этот метатег для приложений hashbang? Почему или почему нет?
-
Используя режим HTML5, мои URL-адреса выглядят примерно так:
http://sample.com/landing/home
Даже с тегом
meta
из # 2, указанным в моемindex.html
, я все еще не могу перейти к своим URL-адресам, поскольку искатель будет, например:http://sample.com/#!/landing/home
Это нормально? Должен ли я ожидать перехода к стилю hashbang моего приложения, если это приложение режима HTML5, после добавления параметров поставщика
location
и/или тегаmeta
?
Более того, я думаю, что мой фактический вопрос: какой конкретно, необходимый для обхода режима HTML5, и что специально требуется для обхода стиля в стиле хешбанг? Как они перекрываются? Кроме того, как конфигурация режима HTML5 действительно работает, за кадром, если какой-либо маршрут в стиле hashbang не создается/не используется?
Обратите внимание, что эти вопросы не зависят от проблемы создания/обслуживания моментальных снимков, которые я обычно понимаю.
AngularJS SEO-дружественная конфигурация обычно имеет смысл, когда дело доходит до классических приложений в стиле hashbang, но для режима HTML5 я немного смущен. Понравилась бы какая-то ясность.