Spring-Maven:无法加载Javascript文件

时间:2014-07-03 13:28:52

标签: java javascript css spring maven

以下是我的应用程序的文件夹结构,

Application Folder Structure

我在 webapp 下创建了一个资源文件夹,该文件夹包含 CSS JS

在servlet-context文件中,我已将资源映射到resources / inspiremetheme,如下所示,

<mvc:resources mapping="/resources/**" location="/resources/inspiremetheme/" />

我已经在JSP页面中包含了如下,

<head>
    <script type="text/javascript" src="/resources/js/jquery-1.11.1.js"></script>
    <script type="text/javascript" src="/resources/js/inspireme.js"></script>
    <link type="text/css" rel="stylesheet" href="<c:url value="resources/css/global.css"/>" />
</head>

这里的问题是我无法加载我的JS文件,因为正确加载了CSS文件。 我无法理解我错过了什么。

更新 - 1: 解压后的文件结构如下,

Inspireme 
   |
   |------ META-INF
   | 
   |------resources --> inspiremetheme --> css and js folders
   |
   |------ WEB-INF --> classes, jsp, lib, web.xml

2 个答案:

答案 0 :(得分:4)

您将<c:url value=".."/>混淆为脚本代码..

<c:url value="/resources/js/jquery-1.11.1.js" var="myUrl" />
<script type="text/javascript" src="${myUrl}"/><!-- comment --></script>

还在中添加注释:这将阻止jspx解析器最小化标记。

如果解析器最小化您的标记,您将得到结果:

<script type="text/javascript" src="/WEBAPP/resources/js/jquery-1.11.1.js"/> 

而不是

<script type="text/javascript" src="/WEBAPP/resources/js/jquery-1.11.1.js"></script>

这可能导致某些浏览器无法正常工作

答案 1 :(得分:1)

如果您决定使用 Java config 而不是 xml ,则可以采用以下解决方案。

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/jsp/", ".xml");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/inspiremetheme/css/**", "/inspiremetheme/js/**")
                .addResourceLocations("classpath:/inspiremetheme/css/", "classpath:/inspiremetheme/js/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}