У меня есть требование, чтобы иметь возможность создавать PDF-файлы из шаблона Spring Boot. Для этого я использую библиотеку рендеринга PDF (FlyingSaucer), которая в основном выполняет задание правильно. Однако есть одна проблема: когда у меня есть теги «href» на странице, они не корректно решают, когда рендеринг PDF пытается отобразить HTML. Например, если у меня есть следующий код:Как получить статический ресурс (js, css) как ClassPathResource в Spring Boot?
<link rel="stylesheet" type="text/css" th:href="@{/css/index.css}" />
Это правильно решает в браузере, но когда я пытаюсь получить это в качестве пути к классам ресурса, используя следующий код:
new ClassPathResource("/css/index").getInputStream()
Spring Загрузочный говорит что файл не существует. Это странно для меня, поскольку я думал, что Spring Boot добавляет весь статический контент в путь к классам.
Ниже представлена структура папок моего проекта, который (я думаю), следует правильно Spring загрузочную convetion:
Могу ли я получить ручку на какой-Спринг ресурс (через автоматического связывания, контекст приложения и т. д.), чтобы разрешить эти URL-адреса так же, как и в случае, когда браузер запрашивает их? Я мог бы обойти это с помощью hardcoding «resources/static /» до начала строки url, но я бы предпочел более динамичное решение.
Есть ли способ, которым мне не нужен жесткий код «статический»? – Pell000
Весной стандартный путь класса для ресурсов - «src/main/resources». Таким образом, после этого вам придется добавить полный путь. Очевидно, что вы можете воспользоваться сочетанием шаблонов и т. Д., Но в конце концов вам все равно придется его предоставить. –
См. Мой ответ. Мне удалось сделать это, не предоставляя полный путь, используя некоторые компоненты Spring. Я думаю, что «src/main/resources/static» также помещается в путь класса. Однако, если мое понимание ошибочно, сообщите мне. – Pell000