我有一个简单的angular7应用,其中只有两条路线是“ article”主体。如果您在本地对其进行测试,则它会起作用,但是当您放置在github页面上时,它只会加载页面的CSS。我按照documentation上的角度文档进行了部署,并且还尝试了gh-pages工具。但是他们都不起作用。如果我删除路线,则可以使用。
这是我在控制台上遇到的错误。
1 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'blogfolio'
Error: Cannot match any routes. URL Segment: 'blogfolio'
at t.noMatchError (main.5443131190bc79920d7b.js:1)
at e.selector (main.5443131190bc79920d7b.js:1)
............
rodnorm.github.io/:1 Failed to load resource: the server responded with a status of 404 ()
这是我的代码:
app.rounting.ts
import { MainComponent } from './main/main.component';
import { ArticleComponent } from './article/article.component';
import { Routes } from "@angular/router";
export const routes: Routes = [
{
path: '', component: MainComponent
},
{
path: 'article', component: ArticleComponent
}
];
这是在articleList.component.html
中<div class="post-preview" [routerLink]="['/article']">
这是app.routing.module
import { routes } from './app.routing';
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
答案 0 :(得分:0)
您指定了base-href
吗?我查看了该存储库,但没有在项目配置中找到它。尝试在您的配置中添加baseHref
。
只是angular.json
的一个片段示例:
"outputPath": "wwwroot/dist",
"baseHref": "/dist/",
"deployUrl": "/dist/",
"index": "ClientApp/index.html",
"main": "ClientApp/main.ts",
"polyfills": "ClientApp/polyfills.ts",
"tsConfig": "ClientApp/tsconfig.app.json",
"assets": [
"ClientApp/resources"
],
"styles": [
"ClientApp/styles.scss"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/popper.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
]
您可以阅读issue以获取更多信息。
答案 1 :(得分:0)
我发现发生了什么事!
在我的/docs/index.html内部,当我运行
时给出了基本的hrefng build --prod --base-href <nameHere>
不是相对网址。我必须在此index.html文件中将//添加到基本href中,这是这样的:
<base href="/blogfolio/">
这使它起作用。我知道一个很好的答案是将“ / blogfolio /”添加到ng build href,但这似乎也不起作用。
有一个关于here的公关。
谢谢一切,伙计们!
答案 2 :(得分:0)
如果您的Angular应用程序中有路由器,则它在GitHub页面中将不可用,您将获得404页面。
要解决此问题,您需要告诉服务器在找不到页面时需要执行的操作,因此请复制index.html文件并将其重命名为404.html。这样可以确保服务器没有的所有路由都将重新路由到Angular路由器。
有关更多信息,请参考this。谢谢!