Ошибка синтаксиса Angular 7: ожидаемое выражение, получаемое ‘< в процессе разработки при изменении базовой ссылки из root

#angular #angular7

#angular #angular7

Вопрос:

Всякий раз, когда я меняю базовую ссылку на «/ v2 /» (или любое другое значение, отличное от «/») через ng build --prod --base-href /v2/ , я получаю следующую ошибку:

Ошибка синтаксиса Angular 7: ожидаемое выражение, полученное ‘<‘

Комментарии:

1. можете ли вы добавить больше деталей, таких как трассировка стека? также --base-href должна быть ваша фактическая базовая ссылка. в вашем случае /v2/

2. Где я могу найти журналы / stacktrace? Я обновил, чтобы добавить точную строку.

3. Вы действительно решили это?

4. пожалуйста, выберите лучший ответ

Ответ №1:

это перебор:

 ng build --aot --prod
  

поскольку prod всегда выполняет aot, так что этот параметр не нужен, пожалуйста, используйте:

 ng build --prod --base-href
  

Источник: https://angular.io/guide/deployment

Также < базовый href=»/v2″> вместо <базовый href=»/v2/»>

Затем, чтобы убедиться, что ресурсы не потеряны, я добавил папку src /app / v2 /assets / images и обновил css, чтобы ссылаться на новый путь и angular.json

 "assets": ["src/favicon.ico","src/v2/assets"]
  

Комментарии:

1. это работает в среде разработки ng serve. ng build --prod --base-href это не меняет результатов.

2. Я предполагаю, что это приведет к сбою в NG SERVE —AOT

3. также <базовый href=»/v2″> вместо <базовый href=»/v2/»>

4. Ошибка устранена, но все ресурсы, включая css, main *.js, runtime *.js, не имеют / v2/main *.js в своем местоположении

5. Да, у меня была та же проблема, я добавил папку src/app/v2/assets/images и обновил css, чтобы ссылаться на новый путь и angular.json «assets»: [«src/favicon.ico»,»src/v2/assets»]

Ответ №2:

Я тоже заметил это поведение при переходе с версии 6 -> версии 7. Если вы используете маршрутизацию, попробуйте использовать свой маршрут с подстановочным знаком (**) в качестве этого

 {
    path: '', component: DashboardComponent, children: [
      { path: 'comp1', component: FirstComponent },
      { path: 'comp2', component: SecondComponent },
      { path: 'comp3', component: ThirdComponent },
      { path: '**', redirectTo: '/comp1', pathMatch: 'full'}
    ]
}
  

В версии 6 это также работало, но не в версии 7

 { path: '**', redirectTo: 'comp1', pathMatch: 'full'}
  

Короче говоря, если вы добавите это в конец ваших путей маршрутизации, это должно сработать

 { path: '**', redirectTo: '/', pathMatch: 'full'}