我有一个基本的404页面,如果有人输入错误的网址,我想显示该页面。我们的应用程序分为多个模块,我将这个模块称为Module1和Module2。
我在Module1和Module2中定义404路由,如下所示:
state("404", {
url: "/404",
templateUrl: "page-not-found/page-not-found.html"
})
$urlRouterProvider.otherwise("/404");
在Module1中,所有路径都如下所示:/home, /something, /somethingelse
在Module2中,所有路径都如下所示:/module2/home, /module2/something, /module2/somethingelse
所有这些路线都有不同的templateUrl
路径。
当我输入/badroute
时,一切正常。我得到404页面并且有很多欢乐(yaaaaaaay)。但是,当我键入/module2/badroute
时,我没有进入页面而是获得一般的Angular错误。即使我更改了状态的名称和/或url,也会发生同样的问题,因为它们指向同一个文件。
当我为Module2设置404 templateUrl
到不同的文件路径时,一切都按预期工作; /asdf
和/module2/asdf
都将我带到了各自的404页面。由于我不想创建多个404错误页面,如何让不同模块中的路由指向同一个html文件而不会让我脸红?模块之间没有父子关系;它们都是应用程序的不同部分。