1

我尝试在我的 SpringMVC 项目中使用 Bootstrap 和 Bootstrap-Datepicker: GitHub repo

我试图通过 WebJars 同时包含 Bootstrap 和 Bootstrap-Datepicker,如下所示:

<!-- WebJars -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.1.0</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap-datepicker</artifactId>
    <version>1.3.0</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>1.10.2</version>
</dependency>

当我在 pom.xml 中注释掉 bootstrap-datepicker 依赖项时,浏览器会在控制台中抛出如下错误:

GET http://localhost:8080/finager/webjars/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js 404 (Not Found)

这按预期工作。当我不注释 boostrap-datepicker 部分时,浏览器开始看到 bootstrap-datepicker 文件,这也是预期的。不幸的是,浏览器控制台开始抛出类似的错误,说现在 Bootstrap 文件不可见!似乎 boostrap-datepicker 以某种方式覆盖了 Bootstrap。

我尝试更改包含顺序,但效果仍然相同。我所有的 .jsp 文件(包括 CSS 和 JS)似乎都是有效的,因为当 Maven 不尝试包含日期选择器时,Bootstrap 是可见的。有没有一种简单的方法可以在编译后检查我的 webjars 文件夹中可见的内容?

我很迷茫。我在互联网上找不到任何有用的信息。我已经花了一整天的时间,所以任何帮助将不胜感激。提前致谢!

4

1 回答 1

3

与往常一样,我在发布问题后立即想到了解决方案。Maven 似乎检测到 bootstrap-datepicker 依赖于 bootstrap。我想它在结果中包含了不同版本的 Bootstrap - 这可以解释一切。

但是,这是解决方案:

<!-- WebJars -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap-datepicker</artifactId>
    <version>1.3.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
        </exclusion>
   </exclusions> 
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.1.0</version>
</dependency>

有人知道在 Maven 编译后浏览 /webjars 目录结构的简单解决方案吗?这将防止此类问题。

于 2014-01-31T13:37:39.113 回答