2016-02-19 1 views
2

Я новичок в угловом 2 и systemjs, и у меня есть проект node.js, где я пытаюсь отобразить угловое приложение в подпапке «./client/dashboard» на к югу URL 'локальный: 3000/панель' с помощью express.static промежуточного пО:systemjs - сопоставление с другим URL

app.use('/dashboard', express.static(__dirname + '/client/dashboard', { maxAge: 86400000 })); 

angular 2 app folder structure

мой index.html имеет следующий код:

<base href="/dashboard"> 
<link rel="stylesheet" href="dashboard/styles.css"> 
<script src="dashboard/node_modules/angular2/bundles/angular2-polyfills.js"></script> 
<script src="dashboard/node_modules/systemjs/dist/system.src.js"></script> 
<script src="dashboard/node_modules/rxjs/rx.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/angular2.dev.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/router.dev.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/http.dev.js"></script> 
<script> 
System.config({ 
    baseURL: '/dashboard', 
    // paths: { 
    //  '*': 'dashboard/*' 
    // }, 
    map: { 
     app: '/dashboard/app', 
     rxjs: '/dashboard/node_modules/rxjs', 
     angular2: '/dashboard/node_modules/angular2' 
    }, 
    packages: { 
     app: { format: 'register', defaultExtension: 'js' }, 
     rxjs: { defaultExtension: 'js' }, 
     angular2: { defaultExtension: 'js' } 
    } 
}); 
System.import('app/main').then(null, console.error.bind(console)); 
</script> 

единственные ошибки я в получение - это equire не определено 'на rx.ts и 404 на css-файле (см. прилагаемый pic chrome errors)

Если я просто сопоставляю каталог углового 2 приложений с'/', я все равно получаю произвольное требование, не определено 'error на rx.ts, но страница загружается правильно, поэтому я уверен, что это не проблема. Единственная другая ошибка, которую я вижу, это ошибка css. Какие идеи могут возникнуть? tia

ответ

0

Возможно, это потому, что вы включили дважды rxjs и angular2: один с использованием элементов сценария и один в конфигурации SystemJS.

Зачем их определять в конфигурации SystemJS?

Редактировать

Это должно быть достаточно:

<base href="/dashboard"> 
<link rel="stylesheet" href="dashboard/styles.css"> 
<script src="dashboard/node_modules/angular2/bundles/angular2-polyfills.js"></script> 
<script src="dashboard/node_modules/systemjs/dist/system.src.js"></script> 
<script src="dashboard/node_modules/rxjs/rx.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/angular2.dev.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/router.dev.js"></script> 
<script src="dashboard/node_modules/angular2/bundles/http.dev.js"></script> 
<script> 
    System.config({ 
    baseURL: '/dashboard', 
    map: { 
     app: '/dashboard/app' 
    }, 
    packages: { 
     app: { 
     format: 'register', defaultExtension: 'js' 
     } 
    } 
    }); 
    System.import('app/main').then(null, console.error.bind(console)); 
</script> 
+1

Я определил их специально для отображения пути от/node_modules/* к/приборной панели/node_modules/*. Если у меня нет сопоставления на месте, я получаю 404s, пытающихся загрузить rxjs и angular2 зависимостей – prxmt4

+0

На самом деле вам нужно всего лишь отобразить папку 'app' ... Я обновил свой ответ ;-) –

+0

Я пробовал эту конфигурацию , и я получаю 404 на GET http: // localhost: 3000/dashboard/angular2/platform/browser 404 (Not Found), а также зависимости ядра и маршрутизатора – prxmt4