Средний стек: установить путь по умолчанию

где я могу установить путь по умолчанию для приложения Mean Stack? Локальный путь

http://localhost:3000

но я бы хотел, чтобы приложение начиналось с

http://localhost:3000/myapp/

На мой взгляд, я ожидаю, что моя маршрутизация не изменится:

const appRoutes: Routes = [
  { path: '', component: HomeComponent, pathMatch: 'full', canActivate: [AuthGuard] },
  { path: 'login', component: AuthComponent },
  { path: 'register', component: RegisterComponent },
  // otherwise redirect to home
  { path: '**', redirectTo: '' }
];

Когда я развертываю на своем сервере, я хочу, чтобы мое приложение работало на порту 80 и в его отдельном контексте, например:

http://www.myserver.com/myapp/

маршрутизация звучит так:

http://www.myserver.com/myapp/home
http://www.myserver.com/myapp/login

и если я укажу на не заданный маршрут:

http://www.myserver.com/myapp/notexists

он перенаправляет на свою базу:

http://www.myserver.com/myapp/

заранее спасибо.


person Max Bertoli    schedule 27.04.2017    source источник


Ответы (1)


Я нашел решение.

клиентская сторона: в главном представлении (это одностраничное приложение) в разделе заголовка мы должны установить базовый путь href.

<!DOCTYPE html>
<html>
<head>
    <base href="/my-base-path">
    <title>My-pplication</title>
    <link rel="stylesheet" 
</head>

Все мои запросы будут начинаться с

http://mysite/my-base-path/...

Сторона сервера:

Я использую Express, поэтому при запуске app.js (или как там его зовут):

var express = require('express');
...
var app = express();
...
    // Define where are located the external apis
var appRoutes = require('./routes/app');
var authRoutes = require('./routes/auth');
var registerRoutes = require('./routes/register');
var userr = require('./routes/userProfile');
...
...
app.use('/my-base-path/', appRoutes);
app.use('/my-base-path/user',userRoutes)
app.use('/my-base-path/login', authRoutes);
app.use('/my-base-path/register', registerRoutes);

Надеюсь, это может быть полезно.

person Max Bertoli    schedule 08.05.2017