2016-09-26 2 views
1

У меня есть приложение с угловым 2 (последняя полная версия, а не RC или бета), настроенная с той же структурой, что и в учебниках (https://angular.io/docs/ts/latest/guide/router.html). Когда я поставилНевозможно получить маршрутизацию Работа в угловом 2

<base href="/" /> 

на моем Index.html я получаю 404 ошибки для следующих целей:

<script src="node_modules/core-js/client/shim.min.js"></script> 
<script src="node_modules/zone.js/dist/zone.js"></script> 
<script src="node_modules/reflect-metadata/Reflect.js"></script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 

<!-- 2. Configure SystemJS --> 
<script src="systemjs.config.js"></script> 

И эта линия производит ошибку «JavaScript Ошибка:„Система“не определена» System.import ('приложение'). Catch (function (err) {console.error (err);});

Если я удаляю базовый тег, все это нормально, но я получаю «No base href set». Укажите значение для токена APP_BASE_HREF или добавьте базовый элемент в документ ».

Если изменить базовый HREF к

<base href="app" /> 

, я не получаю 404 ошибки выше либо, но я получаю сообщение об ошибке «Необработанное Promise отказ: не может соответствовать любым маршрутам:»

Ниже is my app.routing.ts:

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { BatteriesComponent } from './batteries/batteries.component'; 
import { CabinetsComponent } from './cabinets/cabinets.component'; 
import { RacksComponent } from './racks/racks.component'; 
import { ReportsComponent } from './reports/reports.component'; 

const appRoutes: Routes = [ 
{ 
    path: '', 
    redirectTo: './app/batteries/batteries', 
    pathMatch: 'full' 
}, 
{ path: 'batteries', component: BatteriesComponent }, 
{ path: 'cabinets', component: CabinetsComponent }, 
{ path: 'racks', component: RacksComponent }, 
{ path: 'reports', component: ReportsComponent } 
]; 

export const appRoutingProviders: any[] = [ 

]; 

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes); 

Пожалуйста, помогите.

Благодаря

ответ

0

Это ошибка означает, что ваш индекс не может найти источники предоставленных вами.

Возможно ли, что ваш index.html отличается от уровня файлов, на которые вы ссылаетесь?

-src/index, app 
-node_modules/core-js/client/shim.min.js 

Если ваша установка, как это, то вы должны сделать относительный путь для библиотеки файлов будучи ../node_modules/core-js/client/shim.min.js и т.д. ...

Кроме того, ваш индекс должен иметь <base href="/" /> так, что является основой и исходным для ваш загрузочный файл приложения. Все остальные файлы будут расположены относительно этой позиции.

Ваше перенаправление маршрутизации должно ссылаться на путь, который вы назвали. Вместо './app/batteries/batteries' использовать 'batteries' для относительных переадресаций или '/batteries' для противоположных.

Если вы можете разместить plnk, это может быть самым полезным, если этого не достаточно.

+0

Спасибо Нико. Я должен был поставить «/ MyAppName /» как href базы. – LanceM

+0

Отметьте как ответ, если это вам поможет! благодаря!! – Nico

Смежные вопросы