在部署中提供Angular2应用程序(由Angular CLI构建)

时间:2016-05-20 06:11:42

标签: angular angular2-routing

我使用Angular CLI构建了一个Angular2应用程序,其中包含许多路由。 该应用程序工作正常。我可以使用链接,使用URL或使用路由器的导航功能导航到所有路由。我可以随时在浏览器中刷新页面。

但是当我尝试使用单独的Web服务器从dist / index.html提供我的应用程序时(在开发中使用括号IDE服务器或在生产中使用express / nginx / apache2),应用程序路由行为是不同的。

应用程序流程工作正常,但是直接点击URL(对于任何路由)或任何路由应用程序上的刷新页面显示无法获取/仪表板错误。这里的信息中心是我的路线名称。我在任何现有路由页面上刷新页面时遇到同样的错误。

我想应用程序只能从index.html正确启动,而不能从应用程序的任何地方启动。

我做错了,请帮助。

的index.html

 <script>
        System.import('system-config.js').then(function () {
          System.import('main');
        }).catch(console.error.bind(console));
      </script>

main.ts

bootstrap(NgUnityAppComponent,[         HTTP_PROVIDERS,         ROUTER_PROVIDERS     ]);

ng-unity.component.ts文件

 import { Component } from '@angular/core';
    import { RouteConfig, ROUTER_DIRECTIVES } from '@angular/router-deprecated';
    import {APP_ROUTES} from './ng-unity.routes';
    import { NavbarComponent, FooterComponent, AboutUsComponent } from './shared/index';
    import {NavbarService} from './shared/navbar/navbar.service';
    @RouteConfig(APP_ROUTES)
    @Component({
        moduleId: module.id,
        selector: 'ng-unity-app',
        templateUrl: 'ng-unity.component.html',
        styleUrls: ['ng-unity.component.css'],
        directives: [ROUTER_DIRECTIVES, NavbarComponent, FooterComponent],
        providers:[NavbarService]
    })
    export class NgUnityAppComponent {

    }

我做错了什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

确保将其放在index.html的head元素中:

Angular2路由中的示例&amp;导航文档使用头部中的以下代码(它们解释了文档的实例示例中的原因):

文件撰写( '');

当您刷新页面时,这将动态地将基本href设置为当前document.location。