【问题标题】:Angular2 Quick Start - 'Cannot Get' MessageAngular2 快速入门 - “无法获取”消息
【发布时间】:2016-04-20 09:48:23
【问题描述】:

我一直在尝试编写 Angular2 的快速入门指南。我按照快速指南中的说明做了示例。但是,当我运行它时,它显示以下消息“无法获取”。有谁知道为什么会这样?

boot.js 文件

// JavaScript source code
(function (app) {
    document.addEventListener('DOMContentLoaded', function () {
        ng.platform.browser.bootstrap(app.AppComponent);
    });
})(window.app || (window.app = {}));

app.component.js 文件

(function (app) {
    app.AppComponent = ng.core.Component({
        Selector: 'my-app',
        template: '<h1>My First Angular 2 App </h1>'
    })
    .class({
        constructor: function () { }
    });
})(window.app || window.app == {});

索引文件

<html>

<head>
    <title>Angular 2 QuickStart</title>

    <!-- 1. Load libraries -->
    <script src="https://code.angularjs.org/2.0.0-beta.0/angular2-polyfills.js"></script>
    <script src="https://code.angularjs.org/2.0.0-beta.0/Rx.umd.js"></script>
    <script src="https://code.angularjs.org/2.0.0-beta.0/angular2-all.umd.dev.js"></script>

    <!-- 2. Load our 'modules' -->
    <script src='app/app.component.js'></script>
    <script src='app/boot.js'></script>

</head>

<!-- 3. Display the application -->
<body>
    <my-app>Loading...</my-app>
</body>

</html>

最后是 package.json 文件

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "npm run lite",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.0",
    "systemjs": "0.19.6",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.0",
    "zone.js": "0.5.10"
  },
  "devDependencies": {
    "lite-server": "^1.3.1"
  }
}

我运行了“npm start”行,它打开了浏览器并显示“无法获取”

【问题讨论】:

  • 当服务器无法获取文件时无法获取 (404)。我遇到了同样的问题。 Http Server 在触发它的目录中查找 index.html。确保将 index.html 放在运行 http 服务器的文件夹根级别。另外,根据您的 html 文件,确保 app.component.js 和 boot.js 在 app 文件夹下。希望对您有所帮助。
  • 我在使用 ng serve 时遇到了同样的问题。但在我的情况下,保存 Angular 应用程序的文件夹存在一些权限问题。

标签: javascript node.js angular


【解决方案1】:

我发现了问题所在。我的 html 文件中有一个额外的空间导致错误。我删除了多余的空间,它按预期工作。

【讨论】:

  • 您能否提供有关“额外空间”问题的更多信息?
  • 遇到了同样的问题。多余的空间位于 index.html 文件的末尾。
  • 在 ng serve 期间有东西卡在了多余的空间中。有没有永久的解决方案?
  • 这是我的错字,与 Angular 无关。
【解决方案2】:

当 index.html 不在正确的文件夹中时,我收到此错误。

如果是这种情况,将它放在主 Angular 项目的根文件夹中应该可以解决该错误。

【讨论】:

  • 这意味着在 angular2-quickstart 内部。您可能在文件夹应用程序中拥有它。
  • 您无法添加教程并让人们对“GO”一词感到困惑和困惑,-非常感谢您的帮助。作为一个额外的提示,如果您在 angular.io/docs/ts/latest/quickstart.html 处遵循教程,那么只移动“索引”和“Styles.CSS”页面应该可以解决这个问题。
  • 有没有办法覆盖这种行为?让我们说 /src/app 和 /src/index.html 而不是 /app 和 /index.html ?
【解决方案3】:

我遇到了同样的问题,因为我忘了添加我们可以在教程的“最终结构”部分看到的 bs-config.json 文件。 它应该包含:

{
  "server": {
    "baseDir": "src",
    "routes": {
      "/node_modules": "node_modules"
    }
  }
}

【讨论】:

    【解决方案4】:

    我对 Angular.io 示例“最小 NgModule”有同样的问题 他们给了我们文件名中带有额外“0”的文件。 我通过仅将文件名“index.0.html”转换为“index.html”解决了这个问题 终于成功了:)

    【讨论】:

      【解决方案5】:

      您需要在“src”文件夹所在的位置运行“ng serve”命令。

      【讨论】:

        【解决方案6】:

        背景

        我有同样的问题:Cannot GET / pagename 在每一页上。我搜索了互联网,但没有找到像这样的解决方案。

        我的项目位于一个带有 ASCII 空格的文件夹中,因为存储库名称也包含空格。

        回答

        您的项目所在的文件夹不应包含任何空格或 ASCII 字符“%20”。

        在此更改后,我的项目没有给出Cannot GET / pagename 错误。

        【讨论】:

        • 这个答案应该得到更多的选票,我在这个问题上浪费了 10 多个小时。
        • @Luther 是的,我也花了很长时间,我在互联网上的任何地方都没有看到这个解决方案。
        • @Brampage 感谢您的回答..在找到您的答案之前,我花了几个小时调试我的代码..
        【解决方案7】:

        如果您使用路由,请确保您有一个正确导入的组件指向“”(/路由)。

        示例: { path: "", component: MyHomeComponent }

        Angular 5 安装中app.module.ts 的完整示例(与 Angular +2 相同...)

        import { BrowserModule } from "@angular/platform-browser";
        import { NgModule } from "@angular/core";
        import { FormsModule } from "@angular/forms";
        import { HttpModule } from "@angular/http";
        import { Routes, RouterModule } from "@angular/router";
        
        import { AppComponent } from "./app.component";
        import { CinemaService } from "./services/cinema.service";
        import { MyHomeComponent } from "./components/my-home/my-home.component";
        import { MyMovieComponent } from "./components/my-movie/my-movie.component";
        
        const routes: Routes = [
          { path: "", component: MyHomeComponent },
          { path: "movie/:id", component: MyMovieComponent },
        
        ];
        
        @NgModule({
          declarations: [
            AppComponent,
            MyHomeComponent,
            MyMovieComponent
          ],
          imports: [
            BrowserModule,
            FormsModule,
            HttpModule,
            RouterModule.forRoot(routes)
          ],
          providers: [CinemaService],
          bootstrap: [AppComponent]
        })
        export class AppModule { }
        

        【讨论】:

          【解决方案8】:

          我收到此错误只是因为我在angular-cli.json 文件中进行了一些更改,然后我运行了我的应用程序并收到了错误

           " Cannot GET / ".
          

          然后我删除了在angular-cli.json 文件中所做的更改并运行了该应用程序。它工作正常。

          【讨论】:

          • “一些变化”是什么?
          【解决方案9】:

          当您的 Angular 项目无法编译时,会出现无法 GET / 错误。因此,首先确保您的角度代码没有任何错误,并且可以正常编译。只需使用此命令:

          ng serve
          

          它应该列出你的 Angular 代码的所有问题。

          【讨论】:

            【解决方案10】:

            除了 Melaz 所说的之外,我在 HTML 文件中遇到了同样的问题(没有反应,有角度),我只是通过将文件名更改为 index.html 解决了这个问题

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-04-09
              • 2021-10-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-02
              • 2020-11-26
              • 1970-01-01
              相关资源
              最近更新 更多