Spring Security没有加载js和css。 (给出404错误)

时间:2016-01-18 21:03:57

标签: java spring spring-mvc spring-security

我最近在我的MVC系统中实现了spring security。实现之后,JS和CSS没有被加载(给出404错误)。

spring security XML:

<global-method-security secured-annotations="enabled" />
<http pattern="/**/*.css" security="none" />
<http pattern="/**/*.js" security="none" />
<http pattern="/**/*.png" security="none" />
<http pattern="/**/*.jpg" security="none" />
<http pattern="/**/*.gif" security="none" />
<http pattern="/resources/**" security="none" />

<!-- enable use-expressions -->
<http auto-config="true" use-expressions="true" entry-point-ref="authenticationEntryPoint">

    <!-- Dashboard & resources -->
    <intercept-url pattern="/" access="permitAll" />
    <intercept-url pattern="/loginRequest**" access="permitAll" />
    <intercept-url pattern="/logout**" access="permitAll" />
    <intercept-url pattern="/dashboard**" access="permitAll" />
    <intercept-url pattern="/resources**" access="permitAll" />

    <!-- Incoming Product -->
    <intercept-url pattern="/incomingProduct**" access="hasRole('Administrator') and hasRole('Local_Administrator') and hasRole('Supervisor') and hasRole('Manager')" />

    <!-- Maintanence pages -->
    <intercept-url pattern="/depotUser**" access="hasRole('Administrator') and hasRole('Local_Administrator')" />
    <intercept-url pattern="/product**" access="hasRole('Administrator') and hasRole('Local_Administrator') and hasRole('Supervisor') and hasRole('Manager')" />
    <intercept-url pattern="/productOwner**" access="hasRole('Administrator') and hasRole('Local_Administrator') and hasRole('Supervisor') and hasRole('Manager')" />
    <intercept-url pattern="/storageTank**" access="hasRole('Administrator') and hasRole('Local_Administrator') and hasRole('Supervisor') and hasRole('Manager')" />

    <intercept-url pattern="/admin**" access="hasRole('Administrator')" />

    <!-- access denied page -->
    <access-denied-handler error-page="/error/403" />
    <form-login 
        login-page="/"
        login-processing-url="/loginRequest"
        default-target-url="/dashboard/home"
        authentication-failure-url="/loginPage?invalidLogin=Yes" 
        username-parameter="username"
        password-parameter="password"  
        />
    <logout logout-success-url="/logout" />
    <!-- enable csrf protection -->
    <csrf />

    <custom-filter before="FORM_LOGIN_FILTER" ref="authenticationFilter"/>
</http>

我在调度的servlet XML中定义了我的资源路径:

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />

我包括我的JS和CSS如下:

<script src="./resources/plugins/jQuery/jQuery-2.1.4.min.js"></script>
<!-- Bootstrap 3.3.2 JS -->
<script src="./resources/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<!-- Bootstrap 3.3.4 -->
<link href="./resources/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

我认为我在这里忽略了一些错误。

任何人都可以帮助我吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试在页面上添加这行代码来使用jstl核心库。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

而不是使用它。

<script src="./resources/plugins/jQuery/jQuery-2.1.4.min.js"></script>

尝试使用它。

<script src="<c:url value="/resources/plugins/jQuery/jQuery-2.1.4.min.js"/>"></script>

答案 1 :(得分:0)

我认为您指的是<mvc:resources .../>中的错误位置。

如果所有js / css文件都在<mvc:resources location="/resources/" mapping="/resources/**"/>目录下,则应为src\main\webapp\resources

请参阅此answer