Я новичок в AngularJS, и после того, как я играл с $routeProvider
меня есть $routeProvider
с тем, чтобы спросить...
Я знаю, что AngularJS используется для одностраничных приложений, но как насчет URL-адреса, к которому напрямую обращаются, например:
ДЕЛО 1:
если кто-то получит доступ к example.com
тогда он нажмет ссылку, которая отправит его: example.com/article/title/
, и это будет нормально, потому что AngularJS предотвратит запрос клиента на сервер, пока не навредит, на данный момент,
СЛУЧАЙ 2:
если я отправлю ссылку на мою статью кому-то, и он попытается получить доступ к example.come/article/title/
well 404.
Мой вопрос о стратегии борьбы с таким поведением, у меня есть некоторые идеи, но я не очень хорошо знаком с AngularJS, как я уже говорил, но:
example.com/path
станет example.com
), но это влияет на относительные ссылки на моей странице, поэтому я должен переключиться на полные ссылки, для example (example.com/js/main.js
).Идея плохая, я ее знаю, но это позволяет AngularJS позаботиться о URL-адресах в любом случае.
example.come/article/title
в example.com?title=articleTitle
, затем я проверю через свой серверный язык ( php), вытащите и распечатайте статью из базы данных на страницу, прежде чем она даже попадет в руки AngularJS.Теперь этот подход вроде разрывает концепцию одной страницы (нет?), У меня разные мнения об этом методе.
В общем, я ищу лучший способ обработки запросов URL-адресов, которые находятся за пределами страницы, и запросы, которые AngularJS не может предотвратить.
Редактировать:
Проблема проста, когда пользователь нажимает ссылку изнутри сайта. AngularJS предотвратит действие по умолчанию, которое запрашивает путь от сервера, например example.com/article/title/
будет искать папку title
которая находится внутри article
или точнее индекс для этой папки.
Теперь, если друг отправить вам ссылку, непосредственно ссылку, которая указывает на конкретную статью, например example.com/articl/title
будет запрос на сервер для извлечения индекса для title
папки, что внутри article
папку под example.com
.
Надеюсь, теперь это имеет больше смысла.
Поэтому я нашел решение в виде механизма перезаписи Apache:
RewriteCond %{REQUEST_URI} ^(/article/[a-z-]+/?)$ [NC]
RewriteRule .* http://example.com/#%1 [NE,R,L]
Используя эти правила, я могу вернуть клиент example.com/#/article/title
.
Следующий шаг: AngularJS разделит #
оставив меня с example.com/article/title
.
Никакой полный путь не нужен, я могу остаться с моими относительными путями.
#
перед междуexample.com
и/article/title/
right, это идея, я думал об этом, но это очень плохо один.