私は、SpringブートテンプレートからPDFを生成できる必要があります。このために、私は主に正しく仕事をするPDFレンダリングライブラリ(FlyingSaucer)を使用しています。しかし、1つの問題があります。ページに「href」タグがあると、PDFレンダラーがHTMLをレンダリングしようとしたときに正しく解決されません。たとえば、私は次のコードがある場合:Spring BootでClassPathResourceとして静的リソース(js、css)を取得する方法は?
<link rel="stylesheet" type="text/css" th:href="@{/css/index.css}" />
それはブラウザで正しく解決されますが、私は次のコードを使用してクラスパスリソースとしてこれを取得しようとすると:
new ClassPathResource("/css/index").getInputStream()
春ブーツは言いますファイルが存在しないことを確認します。これは私にとっては奇妙なことです。私は、Spring Bootがすべての静的コンテンツをクラスパスに追加すると考えていたからです。以下は
正しい春ブートconvetionを次の(と思う)私のプロジェクトのフォルダ構造、次のとおりです。
私はオートワイヤリングを通していくつかの春のリソース(アプリケーション・コンテキストのハンドルを取得することができますなど)は、ブラウザが要求したときと同じようにこれらのURLを解決しますか? URL文字列の先頭に "resources/static /"をハードコードすることでこれを回避することができますが、もっとダイナミックなソリューションが好まれます。
「静的な」ハードコードはありませんか? – Pell000
春、リソースの標準クラスパスは "src/main/resources"です。それ以降は完全なパスを追加する必要があります。もちろん、パターンマッチングなどの利点を得ることができますが、最終的にはそれを提供する必要があります。 –
私の答えを参照してください。私はいくつかのSpringコンポーネントを使用して完全なパスを提供することなく、これを行うことができました。私は "src/main/resources/static"もクラスパスに置かれていると思います。しかし、私の理解が間違っている場合は、私に知らせてください。 – Pell000