デフォルトの静的リソース供給
Springbootには、いくつかのデフォルトの静的リソースディレクトリがあり、これも設定できます。デフォルトの構成 /** to /static(or /public、 /resources、 /meta-inf /sostance)へのマップ、およびカスタム構成方法は次のとおりです。
spring.mvc.static-pattern =/**#静的リソースに使用されるパスパターン。
フロントエンドがデフォルトの静的リソースにアクセスする必要がある場合は、次のディレクトリ構造に注意してください。
appalical.yml│ -rusources│├││。static│││││css.css│css│└│└。index.js
index.htmlの上記の静的リソースを参照する方法は?
次の記述方法:
<link rel = "styleSheet" type = "text/css" href = "/css/index.css" rel = "external nofollow"> <script = "text/javascript" src = "/js/index.js"> </script>
注:デフォルトの構成 /** /static(または /public、 /resources、 /meta-inf /resources)へのマップ
/css/index.cssを要求すると、Spring MVCは /static /ディレクトリにあります。
/static/css/index.cssとして構成されている場合、上記で構成されたいくつかのディレクトリの下にはstaticディレクトリがありませんので、リソースファイルは見つかりません!
したがって、静的リソースの場所を記述するときは、マッピングされたディレクトリ名(/static/、/public/、/resources/、/meta-inf/resources/など)を持たないでください!
カスタム静的リソース
オンライン情報には、仕様を構成ファイルで定義できると述べています。この方法は使用しませんでした。拡張構成を実装して使用しました。
PS:Springboot 1.xバージョンでは、Spring MVCに関連する一部の構成がWebMVCAutoconfigurationを継承することにより拡張されているが、2.xバージョンでは、インターフェイスWebMVCCONFigurerが直接実装されているため、インターセプターの構成、一般的な返品プロセスの構成など、インターセプターの構成、総合的なハンドリングなどの設定など、一般的な返品プロセスの構成など、スプリングMVC関連機能を拡張するように直接実装されています。この記事では、内部などのデフォルトのメソッドをカバーします。
コードをアップロードするだけです。
@configurationpublic class mywebappconfigurerはwebmvcconfigurerを実装します{// event.share.image.dir =/data/share/image/@value( "$ {event.share.image.dir}")private string outputdir; @Override public void addResourceHandlers(ResourceHandlerRegistry Registry){registry.addresourceHandler( "/share/image/**")。 }}注:上記のコードの背景は、動的に別の場所から取られた画像です。 Sringboot Jarパッケージに入れてはなりません。したがって、上記の構成を介して、http://host/share/image/a.jpgから/data/share/image/a.jpgの画像に直接アクセスできます。静的リソースファイルが動的でない場合は、リソースディレクトリにもあります。次のように記述する必要があります。
registry.addresourcehandler( "/share/image/**")。addresourcelocations( "classpath:"+outputdir); //ファイルをClassPathに変更します
Springbootツールクラスを介して静的リソースにアクセスします
非常にシンプルで、コードは次のとおりです。
private static final string background_image = "share/background.jpg"; file = new ClassPathResource(background_image).getFile(); inputstream is = new ClassPathResource(background_image).getInputStream();
それを書く別の方法があることがわかります:
private static final string background_image = "classpath:share/background.jpg"; file file = resourceutils.getFile(background_image);
しかし、バージョン2.xでは、次のものが表示される場合がありますが、例外
java.io.fileenotfoundexception:クラスパスリソース[共有/backgraght.jpg]はファイルシステムに存在しないため、絶対ファイルパスに解決できません。
最初に書く方法をお勧めします。