Изменение корневого каталога приложения Angular UI с «#» на другое

0

Когда я использую угловой маршрутизатор UI в своем приложении, мой URL-адрес выглядит как:

www.example.com/serverpath#/UIRouterPath1
www.example.com/serverpath#/UIRouterPath2

Теперь я хочу изменить что-то вроде

www.example.com/serverpath/SPA/UIRouterPath1
www.example.com/serverpath/SPA/UIRouterPath2

Как это сделать?

Теги:
angular-ui-router

1 ответ

1

По умолчанию, AngularJS будет маршрутизировать URL-адреса с хэштегом, но вы можете удалить его с помощью $ locationProvider.

Вы будете использовать модуль $ locationProvider и установите для html5Mode значение true. Например:

var app = angular.module('App', ['ngRoute']);

app.config(function($routeProvider,  $locationProvider){
    $locationProvider.html5Mode(true);

И для добавления базы для url в индексный файл вы должны использовать <base> в разделе head. Например

<base href="/SPA">

Таким образом, когда вы пишете один тег <a> как это в вашем html файле:

<a href="UIRouterPath1">UIRouterPath1</a>

он будет связан с: www.example.com/serverpath/SPA/UIRouterPath1

  • 0
    Я сделал это. Но новая база, упомянутая в теге <base>, не применяется, то есть вместо получения www.example.com/serverpath/SPA/UIRouterPath1 я получаю www.example.com/serverpath/UIRouterPath1. мои фактические маршруты сервера интерпретируются как угловые маршруты пользовательского интерфейса.
  • 0
    Извините, я неправильно объяснил ярлык <base>. Надо сказать, что если вы работаете в angular с маршрутами, то значение base применяется в свойстве templateUrl. Например, $ routeProvider .when ('/', {templateUrl: 'views / login.html', controller: 'LoginController'}) эта ссылка на: [Valueofbase] /views/login.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню