1

Spring MVC での css ファイルの処理に問題があります。css ファイルの場所とマッピングに問題があります。

css ファイルが次の場所にある場合:

-src
  -main
     +java
     +resources
     -webapp
        -css
           style.css
        +WEB-INF

(Maven プロジェクト)

私が使う:

 <mvc:resources location="/css/" mapping="/css/**"/>
 <mvc:annotation-driven/> 

dispatcher-servlet.xml、次のようにアクセスしてアクセスしますjsp

<head>
  <title>Insert title here</title>
  <link href="/css/style.css" rel="stylesheet" type="text/css">
</head>
4

2 に答える 2

5

JSTL c タグを使用してコンテキスト パスの問題を解決します。

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 ...
 <link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css'/>"/>

それはあなたに与えるでしょう:

 <link rel="stylesheet" type="text/css" href="/{context-path}/css/style.css"/>

このタグを使用することをお勧めします。すべての URL をこのタグでラップする必要があります。これは、後でコンテキスト パスを変更することにした場合でも、すべての jsp ファイルのすべてのリンクを確認する必要がなくても、JSLT プロセッサが正しいコンテキスト パスを生成するためです。

于 2012-05-26T20:10:16.800 に答える
3

この問題を解決して、本番環境で使用する実際のパスでコードが実行されるようにするには<base>、次のように JSP ページでタグを使用します。

<base href="http://localhost:8081/table/" target="_blank" />

これにより、JSP ページ内の残りのすべての相対パスを完全なパスを使用して表すことができます。

<link href="/css/style.css" rel="stylesheet" type="text/css">

詳細については、HTML base 要素の使用に関する Mozilla Developer Center のリファレンスを参照してください。さらに、このブログ投稿は、特に Java 開発者ではない Web 設計者と一緒に作業する場合に、クライアント側コードの作業に関する視点を提供するのにも役立ちます。


注:余談ですが、@gigadot が提案したソリューションを組み合わせて c:url タグを使用すると、サイト上のすべてのリンクを編集する必要がなくなり、HTML が乱雑になるという手間が省けます。ベースタグは動的であるため、コンテキストパスを変更してもどこにでも反映されますが、フレームワークにそれほど強く結び付けられません。

タグを使用するためのクレジットが@gigadotになるようにその回答にリンクして<c:urlいますが、ここに文書化して、他の人が両方を一緒に使用することの組み合わせた知識から利益を得ることができるようにします.

<base href="<c:url value='/table' />" target="blank" />
于 2012-05-26T20:10:53.700 に答える