Angular2 快速入门 - “无法获取”消息

Posted

技术标签:

【中文标题】Angular2 快速入门 - “无法获取”消息【英文标题】:Angular2 Quick Start - 'Cannot Get' Message 【发布时间】: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 应用程序的文件夹存在一些权限问题。 【参考方案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 解决了这个问题

【讨论】:

以上是关于Angular2 快速入门 - “无法获取”消息的主要内容,如果未能解决你的问题,请参考以下文章

快速入门!详解 Angular2 路由的分类及使用!

将 bootstrap 模块和 ng2-select 模块集成到 angular2 5 分钟快速入门

格子快速入门 - 无法获取 link_token (Python)

Angular2 入门详解

客快物流大数据项目(八十八):ClickHouse快速入门

C语言编程入门笔记基础学习排序算法之快速排序,轻松掌握快排!