Базовый тег Angularjs и $locationProvider предотвращает загрузку шаблонов

Я хочу удалить # на английском языке URL. Так что я следил за этим блогом.

Это мое .config():

.config(['$stateProvider', '$locationProvider' function($stateProvider, $locationProvider,) {

     $stateProvider.state('main', {
        url: '/',
        templateUrl: 'path/to/main.html',
        controller:'mainCtrl'
     })

     $locationProvider.html5Mode(true);
}])

А это мой <header>:

<head>
    <scripts>....

    <base href="/"> // I ADDED THIS
</head>

Но когда я получаю доступ к / ссылка на сайт. Как это http://localhost/my-app/ это показывает только пустую страницу. На консоли нет ошибок / с, поэтому я предполагаю, что проблема заключается в загрузке шаблона. Я использую ui.router, Кто-то сталкивался с этой проблемой? Благодарю.

1 ответ

Решение

1-й, когда вы используете <base href="/"> Вы можете установить ВСЕ относительные URL-адреса, добавленные к этому пути. Так что если ваше приложение доступно в /my-app/ использование <base href="/my-app/">Также вы можете попробовать относительную базу HREF <base href="./">, но я не рекомендую это. Теперь ваше приложение в http://localhost/my-app/ но база http://localhost/

2-й Когда вы используете маршрутизацию html5, вы можете убедиться, что веб-сервер не отвечает на другую страницу, но ваш index.html

В-третьих, после этого проверьте свой JS, может быть, не могу загрузить шаблон из-за базовой URL-адреса...

Другие вопросы по тегам