2016-11-25 2 views
0

私は、bootstrapとjspを使ってスプリングブートmvcアプリケーションを作っています。私のアプリは他のマッピングではうまく動作していますが、url localhost:8080/admin/addSomethingブートストラップの代わりにシンプルなhtmlページをレンダリングすると、ページのスタイルを指定できますか?以下 は私が、私はちょうどGoogleのオープンソースのテンプレートをコピーして、それを使ってブートストラップに新しいです私の静的リソーススプリングブート、ブートストラップはブートストラップスタイルのページを描画していません

src/main/resources/static/public/css/customstyle.css/... 

src/main/resources/static/public/lib/bootstrap/css/... 

src/main/resources/static/public/lib/bootstrap/js/... 

src/main/resources/static/public/lib/bootstrap/images/... 

src/main/resources/static/public/lib/bootstrap/vendor/bootstrap/ 

src/main/resources/static/public/lib/bootstrap/vendor/font-awesome/... 

src/main/resources/static/public/lib/bootstrap/vendor/jquery/... 

のパスです。

問題に対処するのに長い時間を過ごした後、私は

spring.resources.add-mappings=true 
spring.resources.static-locations=/resources/ 

を提出私のapplication.propertiesにでこれを入れてみましたが、私はその後、

spring.resources.static-locations=/resources/ 

を追加したとき、私の他のページも停止しますブートストラップスタイルを示す

私もこれを私の主なアプリケーションクラスで試しました

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 

何も問題なく動作しているようですが、いずれかの解決策を提案できますか?

私はローカルホストへのパスをマップするとき、それは目的の外観を示しているように、ページ上のマイJSP/HTMLコードは、罰金です:8080/addSomething

答えて

0

静的リソースは、あなたのJSPにリンクされている方法は? /で始める必要があります。 /aa/bb.css、さらには、c:urlを使用してください。 <c:url value="/aa/bb.css" />

+0

非常に良い夕方のサー、返信いただきありがとうございます。 – user2245151

+0

はい私のリソースはこのようにリンクされています../ public /...../ style.css。いくつかはとしてリンクされています。また、リンクhrefでリンクされているものもあります。しかし、rootやroot/adminのような第1レベルのマッピングでうまくいっているのはなぜですか。とにかく私のjspsを適切にリンクすることでもう一度試してみます – user2245151

+0

アプリケーションは相対パスからリソースを取得しようとします。例えば。リンク「abc/xyz.css」の場合、最初のレベルにある場合、相対パスは「http:// localhost:8080/abc/xyz.css」になります。しかし、 "http:// localhost:8080/admin"にいる場合、パスは "http:// localhost:8080/admin/abc/xyz.css"になりますが、これは間違っています。だから、あなたはいつもそのようなリンクを/で始めるべきです。 – Sanjay

関連する問題