Как я могу сделать Google Sitemap для Spring загрузочного приложения

У меня есть весеннее приложение, развернутое на облачном сервере Digital Ocean.

я попытался сгенерировать файл sitemap.xml, используя https://www.xml-sitemaps.com/ но он дает мне только одну страницу. к которому можно получить доступ на https://hostname.com/

я хотел бы, чтобы моя карта сайта была что-то вроде

  1. https://hostname.com/page1
  2. https://hostname.com/page2

Как я могу сделать карту сайта для других страниц, которые включены в файл war в приложении весенней загрузки.

1 ответ

Если вы смотрите на экспорт URL, упомянутых в контроллерах, то вы можете получить список URL от RequestMappingHandlerMapping,

@RestController
public class TestController {

    @Autowired
    private RequestMappingHandlerMapping re;

    @GetMapping("/sitemap.xml")
    public String getSitemap() {
        Map<RequestMappingInfo, HandlerMethod> handlerMethods = re.getHandlerMethods();
        List<String> urls = new ArrayList<>();
        for (Entry<RequestMappingInfo, HandlerMethod> entry : handlerMethods.entrySet()) {
            urls.addAll((entry.getKey().getPatternsCondition().getPatterns()));
        }
        // Construct XML response from urls and return it
    }

}
Другие вопросы по тегам