Я пишу продукт SPA с помощью AngularJS, обслуживаемый Express с помощью NodeJS. NodeJS/Express также предоставляет API для SPA. В производстве SPA будет находиться за прокси-сервером (Apache, или, возможно, nginx в будущем) - ниже проблема существует даже без прокси-сервера. ngRoute используется для обеспечения маршрутизации.Угловое перенаправление ngRoute на неверный URL
Первоначально я тестировал приложение локально, и все работало правильно. Я клонировал репо на тестовый сервер, но по какой-то причине URL-адреса некорректны, когда я пытаюсь использовать приложение.
Обычно, когда страница загружает приложение, переадресовывает на localhost:8080/#/home
(home
, являющийся основным маршрутом). Однако, когда на тестовом сервере он перенаправляется на domain.com/#!/home#%2Fhome
.
Если я нажму ссылку, которая должна изменить URL-адрес на domain.com/#/quotations
(href установлен относительный, а не абсолютный), я получаю domain.com/#!/home#%2Fquotations
.
Моя конфигурация маршрутизатора:
app.config(['$routeProvider', function($routeProvider){
// Routes
$routeProvider
.when('/home', {
templateUrl: '/views/home/home.html'
})
.when('/staff', {
templateUrl: '/module/staff/views/staff.html',
controller: 'staffController',
controllerAs: 'staff'
})
.when('/error', {
templateUrl: '/views/error/error.html',
css: '/views/error/error.css'
})
.otherwise({
redirectTo: '/home'
});
}]);
В моем главном файле NodeJS сервера Я использую только web.use(Express.static('public_html'))
для установки Express, чтобы обслуживать папку, содержащую public_html
SPA.
Я попытался добавить <base href="/">
в голову моего index.html, но это не имеет никакого значения. Ни Angular, ни Express не настроены на выполнение каких-либо изменений (по умолчанию), чтобы переписать URL-адреса страниц, поэтому я очень смущен относительно проблемы.
Возможно ли вы с использованием двух различных библиотек угловой в тесте и локальных серверов? Я вижу символ '!', Который равен 1.6 – bhantol