1

フレームワークとして Spark を使用して Java Web サーバーを構築し、フロントエンドには Bootstrap と jQuery を使用しています。私はWebjarsを使用して、依存関係を自分のpom.xml.

この問題は、静的ファイルのインポートに関係しています。Bootstrap の CSS および JS ファイルのインポートはうまく機能しますが、jQuery JS ファイルのインポートは機能しません。staticFileLocation("/META-INF/resources");HTMLヘッダーを使用して静的ファイルをインポートします:

<link rel="stylesheet" href="webjars/bootstrap/3.3.6/css/bootstrap.min.css">
<script type="text/javascript" src="webjars/jquery/2.2.1/jquery.min.js"></script>
<script type="text/javascript" src="webjars/bootstrap/3.3.6/js/bootstrap.min.js"></script>

webjars/bootstrap/3.3.6/css/bootstrap.min.cssおよびwebjars/bootstrap/3.3.6/js/bootstrap.min.jsルートはうまく機能しますが、webjars/jquery/2.2.1/jquery.min.js404 に応答します。

どういうわけか、jQuery JS ファイルがクラスパスに存在しないようです。私が欠けているものの手がかりはありますか?

編集:

pom.xml依存関係は次のとおりです。

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.3.6</version>
</dependency>

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>2.2.1</version>
</dependency>

編集2:

staticFileLocation()また、コントローラーで 2 回呼び出します。

staticFileLocation("/static");
staticFileLocation("/META-INF/resources");

2 つの呼び出しが競合しているようです。

4

3 に答える 3

1

mvn exec:execプロジェクトの実行に使用される IDE から Spark を実行すると、 /META-INF/resources/webjars.

ただし、最初に依存関係のあるjarjava -jar <your-project-name-and-version>-jar-with-dependencies.jarを作成してから実行すると、リソースのセット全体が得られます(この場合、ブートストラップとjqueryの両方)。

実際には、次のコードで利用可能なリソースを簡単に確認できます。

get("/list", (req, res) -> {
    Resource resource = Resource.newClassPathResource("/META-INF/resources");
    return resource.getListHTML("/", true);
});

アクセス/listすると、利用可能なリソースの全リストが取得されます。

于 2016-04-06T10:27:39.130 に答える
1

jqueryバージョンの依存関係は、おそらくin2.2.1の推移的な依存関係を介してオーバーライドされています。依存関係で除外を設定できます。jquerybootstrapbootstrap

<dependency>
  <groupId>org.webjars</groupId>
  <artifactId>bootstrap</artifactId>
  <version>3.3.6</version>
  <exclusions>
    <exclusion>
      <groupId>org.webjars</groupId>
      <artifactId>jquery</artifactId>
    </exclusion>
  </exclusions> 
</dependency>

または、明示的な依存関係を削除して、ブートストラップ pom.xmlごとのjquery推移的な依存関係を使用できます。1.11.1

于 2016-03-20T14:36:19.513 に答える
0

Spark のソース コードを調べてみると、参照できる静的フォルダーの場所は 1 つだけであることがわかりました。したがって、同時に使用できる webjar は 1 つだけであり、Spark は他の場所にある CSS または JS ファイルを無視します。

于 2016-03-21T18:32:40.477 に答える