5

我正在尝试将 Piranha CMS (v2.2.0) 与现有的 ASP.NET MVC 应用程序集成。我可以运行所有原始应用程序页面和 CMS 管理器页面。我还可以查看由 CMS 管理的页面草稿,但是当我尝试查看从 CMS 托管的实时页面版本时,我收到 HTTP 404“找不到资源”消息。

所以以下草稿网址有效:

http://localhost:5316/draft/start

但以下实时网址失败:

http://localhost:5316/home/start

原始应用程序确实有一个“Home”控制器,我曾尝试将其重命名为“Test”,以防出现冲突问题。我可以看到新的“测试”内容,但 /home/start url 仍然失败。

按照建议,我的 RouteConfig 代码是:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "Maps.Portal.Controllers" }
).DataTokens["UseNamespaceFallback"] = false;

我的 web.config 设置是:

<settings>
  <managerNamespaces value="" />
  <disableManager value="false" />
  <passiveMode value="true" />
  <prefixlessPermalinks value="false" />
</settings>

我尝试将 prefixlessPermalinks 设置设置为 true,但这没有帮助。

我猜 Piranha CMS 没有捕捉到自己托管的页面的路由?有任何想法吗?

4

1 回答 1

5

通过查看您的配置,我可以看到您已遵循为现有项目设置 Piranha CMS 的指南,将passiveMode设置为true。让我澄清一下这个参数的作用。

被动模式用于您只想使用 Piranha CMS 作为后端内容存储而不处理任何路由的应用程序。这意味着该参数有效地关闭了系统中所有指向永久链接的 url,以免干扰应用程序的现有路由。

如果您想将现有的应用程序控制器与仅由 Piranha CMS 生成的页面混合,您必须将passiveMode设置为false,这将使永久链接的路由再次处于活动状态。

完成此操作后,您将能够使用或不使用无前缀永久链接访问您的页面。

问候

哈坎

于 2014-03-11T09:43:28.830 回答