Hello
I have problems serving a dynamic sitemap.xml in Phoenix 1.7, the browser tells me he got parsing issues.
this is how the xml looks like:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.abc.ch</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
I was checking the documentation about Phoenix Controller and Phoenix.Template, but coulndn’t find the issue…
This is my route:
get("/sitemap.xml", SitemapController, :index)
This is my sitemap_controller.ex
defmodule ClubWeb.SitemapController do
use ClubWeb, :controller
alias Club.{Artists, Events}
def index(conn, _params) do
events = Events.list_events()
artists = Artists.list_artists()
conn
|> put_resp_content_type("text/xml")
|> put_root_layout(false)
|> render(:index, layout: false, events: events, artists: artists)
end
end
This is my sitemap_html.ex
defmodule ClubWeb.SitemapHTML do
use ClubWeb, :html
embed_templates "sitemap_html/*"
def format_date(date) do
date
|> DateTime.from_naive!("Etc/UTC")
|> DateTime.to_date()
|> to_string()
end
end
and this is my sitemap_html/index.xml.eex (The xml is reduced to the minimum to show here)
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.abc.ch</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
Thanks for taking time!