2014-02-06 5 views
0

Любые прямые ссылки на мое угловое приложение оказываются на первой странице сайта. Что я могу сделать для прямой ссылки на определенные части моего сайта?AngularJS - Прямые ссылки всегда отправляют пользователя на главную страницу

Например, в моем угловом приложении, если кто-то нажимает навигационную ссылку на мою страницу, они там хорошо. В строке URL отображается «http://something.com/about». Однако, если они сразу вводят этот URL-адрес, они попадают на первую страницу сайта (url is: http://something.com).

Никаких прямых ссылок не работает ... все они попадают на первую страницу. В моем коде у меня есть:

$locationProvider.html5Mode(true); 

Это, кстати, работает на nginx.

Но, видимо, этого недостаточно, чтобы сделать прямую связь?

ответ

0

Щелчок по ссылке и навигации осуществляется с помощью AngularJS, который работает на вас. Загрузка URL-адреса и переход на правильную страницу обрабатывается сервером. Вам нужно будет настроить правило перезаписи, которое будет обрабатывать этот сценарий.

.htaccess (для серверов Apache):

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !index 
RewriteCond %{REQUEST_URI} !.*\.(css¦js|html|png) #Add extra extensions needed. 
RewriteRule (.*) index.html [L] 

Node.js: https://npmjs.org/package/grunt-connect-pushstate

+0

Что-то должно быть выключено с этим ... я преобразовал его для использования с Nginx и сайт не удалось наиболее эффектно. – Lothar

1

да, как сказал Синтаксис, html5 маршрутизации требует настройки на стороне сервера.

https://coderwall.com/p/mycbiq

How do I configure IIS for URL Rewriting an AngularJS application in HTML5 mode?

http://ericduran.io/2013/05/31/angular-html5Mode-with-yeoman/

+0

Ну, на самом деле у меня есть маршруты, определенные в моем приложении-узле (то есть на стороне сервера). Интересно, не провалился ли я? – Lothar

Смежные вопросы