Как использовать несколько индексных страниц в angularjs

Я хочу получить доступ к localhost: 3000 / admin, который находится в моих представлениях .. index.html и admin.html - это мои два разных базовых файла: один для пользователей, а другой - для панели администратора соответственно.

в моем app.routes.js у меня есть это

 angular.module('appRoutes', ['ngRoute'])
.config(function($routeProvider, $locationProvider) {

$routeProvider

    .when('/', {
        templateUrl: 'app/views/pages/home.html',
        controller: 'MainController',
        controllerAs: 'main'
    })
    .when('/admin', {
        templateUrl: 'app/views/admin.html',
    })
    .when('/logout', {
        templateUrl: 'app/views/pages/home.html'
    })
    .when('/login', {
        templateUrl: 'app/views/pages/login.html'
    })
    .when('/signup', {
        templateUrl: 'app/views/pages/signup.html'
    })
    .when('/admin/login' ,{
        templateUrl: 'app/views/pages/adminlogin.html'
    })

    $locationProvider.html5Mode(true);
   })

в server.js у меня есть это

app.get('*', function(req, res){
res.sendFile(__dirname + '/public/app/views/index.html');
});

Есть два HTML-файла индекса: index.html, admin.html. Я хочу открыть admin.html, если URL-адрес: localhost: 3000 / admin

и index.html, когда URL-адрес: localhost: 3000

скриншот структуры приложения

в представлениях / страницах у меня есть все HTML-страницы, необходимые для index.html и admin.html, используя ng-view

 Dmitriy Khudorozhkov07 июн. 2016 г., 00:49
 Dmitriy Khudorozhkov07 июн. 2016 г., 00:48
Пожалуйста, укажите, о чем вы спрашиваете, так как в настоящее время не ясно, в чем проблема.
 Sahil Chauhan07 июн. 2016 г., 00:50
@DmitriyKhudorozhkov Я хочу получить доступ к localhost: 3000 / admin .. localhost: 3000 просто работает нормально, он отображает файл index.html
 Dmitriy Khudorozhkov07 июн. 2016 г., 00:49
Возможный совет для вас:stackoverflow.com/questions/24927784/...
 Dmitriy Khudorozhkov07 июн. 2016 г., 01:00
Рассмотреть вопрос о прочтенииэтот; 1-й ответ содержит ответ на ваш вопрос.

Ответы на вопрос(2)

Я нашел лучшее решение для этого ..

app.get('*', function(req, res){
if (req.url.match('^\/admin')) {
    res.sendFile(__dirname + '/public/app/views/admin.html');
} else {
    res.sendFile(__dirname + '/public/app/views/index.html');
}
});
Решение Вопроса

вы хотели бы просто добавить еще одно правило маршрутизации для выражения. Экспресс использует первый соответствующий маршрут, поэтому здесь важен порядок.

app.get('/admin/*', function(req, res){
    res.sendFile(__dirname + '/public/app/views/admin.html');
});

app.get('*', function(req, res){
    res.sendFile(__dirname + '/public/app/views/index.html');
});

В угловых документах говорится о html5mode, что вы должны переписать все свои URL в одну точку входа приложения:Using this mode requires URL rewriting on server side, basically you have to rewrite all your links to entry point of your application (e.g. index.html). https://docs.angularjs.org/guide/$location#server-side

Итак, чтобы быть ясным: я предлагаю вам создать серверные маршруты длядва отдельных Программы. Ничто не мешает вам использовать первое приложение еще раз на другом маршруте, но я бы посоветовал против этого. Отделите что-нибудь, обладающее реальной властью над бэкэндом, от общедоступного приложения. То есть Удалить/admin/login а также/admin от ваших нг-маршрутов и просто создайте отдельное приложение для этого.

 Sahil Chauhan07 июн. 2016 г., 01:24
Спасибо чувак.. :)
 Sahil Chauhan07 июн. 2016 г., 02:08
Можете ли вы дать мне рабочий пример? У меня все еще есть некоторые проблемы. заранее спасибо.
 ippi07 июн. 2016 г., 01:22
Вот как бы я это сделал. Внедрение зависимостей в угловых позволяет легко использовать вещи, так что это просто еще одинangular.module(...
 Sahil Chauhan07 июн. 2016 г., 01:21
спасибо .. теперь он рендерит admin.html с помощью localhost: 3000 / admin, и теперь вы предлагаете мне создать 2 ng-приложения, т.е. одно для index.html, а другое для admin.html ??

Ваш ответ на вопрос