我有一个使用 umbraco 的 web 应用程序,它有一个自定义类型 SinglePageApplication 的页面。此内容页面位于根目录:
Content
|
|-Portal (of Type SinglePageApplication)
此页面有一个 Id(例如:1050)并且此页面包含一个 Angular 应用程序。我想要的是当一个 url 不存在并且 umbraco 应该抛出 404 时,它会转到这个页面并让 Angular 处理页面未找到的情况。
为此,我已将 umbracoSettings.config 中的 error404 配置更改为此
<error404>1050</error404>
这有效。但很快这个 Web 应用程序将发布,它具有不同的数据库,并且门户页面可能会有不同的 Id(和 Guid)。显然,umbraco 收到的 404 将不再转发到正确的页面,我必须在实时服务器上手动更改 id。我想防止这种情况发生。
umbracosettings.config 中的示例表明我可以使用 xpaths,当我在谷歌上搜索这个问题时发现了很多示例,但所有示例都适用于 umbraco 7,而且它们似乎都不适用于 umbraco 8,我觉得可能会为此有所改变环境。不幸的是,umbraco 8 的文档目前很差。
到目前为止,我尝试过的是:
<error404>//Page[nodeName='Portal']</error404>
<error404>//SinglePageApplication[node='Portal']</error404>
<error404>$site//SinglePageApplication[node='Portal']</error404>
<error404>$root//SinglePageApplication[node='Portal']</error404>
也许我错过了一个,但他们也没有工作,所有这些都导致了丑陋的 404 页面。
当发生 404 时,将 umbraco 转发到内容页面的方法是什么,就像它使用 NodeId 但没有绑定到页面的 nodeId 或 Guid 一样?