編集: Routeconfig.cs に問題があるようです。最も基本的なルーティング以外をすべて削除すると、sitemap.xml が見つかります。調べて答えを返します。
-
MVC4 プロジェクトで Nuget を介して MvcSiteMapProvider.MVC4 をインストールしました。
私の Mvc.sitemap は次のようになります (Nuget から取得したものです)
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="About" controller="Home" action="About"/>
</mvcSiteMapNode>
</mvcSiteMap>
プロジェクトに対応するコントローラーとアクションがあります(ただし、ホームコントローラーには、スキーマに書き込んでいないアクションが他にもあります)
私のRouteConfig.csの一番下に、これを次のように追加しました
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);
すべてが正常にコンパイルされ、コードに他の変更を加えていません。
しかし、localhost:xxxx/sitemap.xml にアクセスすると、ファイルが見つかりません (リソースが見つかりません)。これはすぐに使えるという印象を受けました。何か不足していますか?
MvcSiteMapProvider が @Html.MvcSiteMap().SiteMap() のように行うその他のことは問題なく動作しますが、単に sitemap.xml を生成しません。