我有一个Angular项目,在本地服务时,路由似乎表现得如此,但当我将其发布到云时,只有 home 路由似乎正在工作,而其他人产生了以下错误消息。
您要查找的资源已被删除,名称已更改或暂时不可用。
我尝试设置基本href( ng build --prod --baseHref“./”)的标志,完全没有区别。目前还不确定如何对其进行故障排除。我的路由设置在一个单独的模块中。
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { HomeComponent, RegisterComponent, LoginComponent, ErrorComponent } from "./admin/admin.module";
const routes: Routes = [
{ path: "admin/register", component: RegisterComponent },
{ path: "admin/login", component: LoginComponent },
{ path: "", component: HomeComponent },
{ path: "**", component: ErrorComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
我删除了我的路由设置作为错误的源,因为* HomeComponent“正在路由到正确(我可以看到其模板的内容,因为 index.html 是空的,除了app标签除此之外,我不能继续,因为我不知道谷歌的用途,因为我的诊断是“不会工作,不知道为什么”。
我该怎么做才能解决问题,或者至少可以通过以下方式获取有关该问题的更多信息?在当地复制?
根据评论进行修改
根据其中一条评论提供的链接,我添加了以下内容的 web.config 文件。
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
现在的行为是根本没有路由 - 我得到任何链接的原始消息。所以它一直行为不端。