如何更改Angular 2目录路由?

时间:2016-09-21 16:23:14

标签: angular routes subdirectory

我开始使用Angular 2,我一直在使用官方文档中的Quickstart proyect,但我不喜欢“'应用程序中的所有内容混合”# 39;文件夹,所以我在其中创建一个文件夹并更改路由,但我在控制台中收到此错误

  

http://localhost:3000/app/main.js 404(未找到)

这是proyect的结构: enter image description here

这是我在路线中所做的更改:

主要/ main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from '../module/app.module';

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

模块/ app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from '../components/app_component/app.component';

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }

2 个答案:

答案 0 :(得分:1)

此配置在main.ts文件中设置,此文件应放在app /文件夹中,而不是放在名为main的子文件夹中。此文件是主应用程序,它负责告诉index.html文件在哪里查找应用程序文件。

这里有两个选项:

1 - 将main.ts文件放在app/main.ts

2 - 将systemjs.config.js更改为指向主文件夹

...
packages: {
  app: {
    main: './main/main.js', // here you can set the new folder
    ...
  },
...

答案 1 :(得分:0)

通常将所有这些组件分发到自己的文件夹是一种不好的做法。您希望将所有组件保留在一个文件夹中,并将该文件夹位置映射出去。你的问题是路径http://localhost:3000/app/main.js不存在。它实际上http://localhost:3000/app/main/main.js你需要在某处定义它。可能是你的index.html,它看起来应该是这样的

<script>
       System.import('app/main')
        .then(null, console.error.bind(console));
</script>

或者像你这样的系统

 map: {
      app: 'app/main',