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 快速入门 - “无法获取”消息的主要内容,如果未能解决你的问题,请参考以下文章
将 bootstrap 模块和 ng2-select 模块集成到 angular2 5 分钟快速入门