Как иметь одностраничное приложение без # внутри URL-адреса с помощью Angularjs?

Я пытаюсь создать одностраничное приложение с помощью angular js. Но я не хочу # внутри URL-адреса, когда шаблон включен. я использовал

 $locationProvider.html5Mode(true) 

app.config(['$routeProvider', '$locationProvider',
  function ($routeProvider, $locationProvider) {
        $routeProvider.
      when('/dashboardnew', {
                templateUrl: './dashboard_tmp',
                controller: 'CategoryCtrl'
            }).
      otherwise({
                redirectTo: '/dashboardnew'
            });
        // use the HTML5 History API
        $locationProvider.html5Mode(true);
    }]);

но это не сработало при перезагрузке страницы. Как мне решить эту проблему? Спасибо


person user3373581    schedule 24.12.2014    source источник
comment
Пожалуйста, вставьте код.   -  person sagar43    schedule 24.12.2014
comment
Я добавил код.   -  person user3373581    schedule 24.12.2014


Ответы (3)


Вы не можете, это компромисс. Режим html5 работает только в том случае, если загружен angular, поэтому он не будет работать, если страница перезагружается или если пути добавлены в закладки. Придерживайтесь #, люди начинают привыкать к ним

person Born2Code    schedule 24.12.2014

Конечно, вы можете использовать режим html5 в angular и переписывать каждый запрос (не API) на свою домашнюю страницу angular на стороне сервера. angular подберет URL-адрес и перейдет к URL-адресу

person bahadir    schedule 24.12.2014

Вам нужно отредактировать файл .htaccess

RewriteEngine on

# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.php [L]

RewriteRule: index.php или index.html

person ArtemKh    schedule 24.12.2014