Angular 7 - удаляет косую черту между базовым URL приложения и угловым скриптом - PullRequest
2 голосов
/ 04 июля 2019

Я пишу приложение Angular-7, в котором в настоящее время не вставляется "/" между именем приложения и вызываемым JavaScript-кодом Angular, а только когда оно развернуто в сети, а не локально.

Редактировать: я проверил «index.html» во встроенном приложении, и он неправильно установил включаемый javascript, чтобы имя приложения было в начале. Например. ниже следует читать «todo / runtime», а не «todoruntime ...»

<script type="text/javascript" src="/todoruntime.03f9a32c370d8f71e7b6.js"></script><script type="text/javascript" src="/todopolyfills.9f83624c7bb370dcef03.js"></script><script type="text/javascript" src="/todomain.9bd773d926709a599260.js"></script></body>

Оригинальный текст:

Например, когда я использую этот URL:

http://localhost:4200/todo/

или этот URL:

http://localhost:4200/todo

работает нормально (заходит на страницу входа). Во втором примере автоматически добавляется обратный слеш в конце.

Однако, когда я развертываю его на веб-сайте, он не отображает страницу входа в систему, а вместо этого каким-то образом теряет обратную косую черту при вызове сценария Angular.

Например, если я введу любой из этих URL-адресов в браузере:

exmaple.com/todo

или

exmaple.com/todo/

показывает абсолютно пустой дисплей. Журнал консоли показывает, что при использовании URL-адреса, который выглядит следующим образом: example.com/todostyles.ed2b9519a10e56c50eca.css

тогда как URL должен выглядеть так:

example.com/todo/styles.ed2b9519a10e56c50eca.css

То есть с "/" между "todo" и "styles ...".

Я строю развертываемый с помощью следующей команды:

ng build --prod --output-hashing=all --base-href /todo --deploy-url /todo 

Вот приложение-routing.module:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { WelcomeComponent } from './welcome/welcome.component';
import { ErrorComponent } from './error/error.component';
import { ListTodosComponent } from './list-todos/list-todos.component';
import { LogoutComponent } from './logout/logout.component';
import { TodoComponent } from './todo/todo.component';
import { HabitComponent } from './habit/habit.component';
import { ListHabitsComponent } from './list-habits/list-habits.component';
import { YearCalendarComponent } from './year-calendar/year-calendar.component';

import { RouteGuardService } from './service/route-guard.service';



const routes: Routes = [
  { path: '', component: LoginComponent },
  { path: 'login', component: LoginComponent },
  { path: 'welcome/:name', component: WelcomeComponent, canActivate:[RouteGuardService]},
  { path: 'logout', component: LogoutComponent, canActivate:[RouteGuardService]},
  { path: 'todos', component: ListTodosComponent, canActivate:[RouteGuardService]},  
  { path: 'todos/:id', component: TodoComponent, canActivate:[RouteGuardService]},  
  { path: 'habits', component: ListHabitsComponent, canActivate:[RouteGuardService]},  
  { path: 'habits/:id', component: HabitComponent, canActivate:[RouteGuardService]},
  { path: 'calendar', component: YearCalendarComponent, canActivate:[RouteGuardService]},    
  { path: 'calendar/:id', component: YearCalendarComponent, canActivate:[RouteGuardService]},    
  { path: '**', component: LoginComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Любые идеи приветствуются.

1 Ответ

1 голос
/ 04 июля 2019

Вы пытались собрать код и указать base-href с завершающим символом /

ng build --prod --output-hashing=all --base-href /todo/ --deploy-url /todo/

Ссылка: Руководство по угловому развертыванию на https://angular.io/guide/deployment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...