角度路由在本地工作,但在上传到云

时间:2018-04-15 07:26:19

标签: javascript angular azure typescript routing

我有一个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>

现在的行为是根本没有路由 - 我得到任何链接的原始消息。所以它一直行为不端。

0 个答案:

没有答案