2013-06-26 52 views
2

我的servlet-context.xml文件找不到CSS,图片和js静态文件春季

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <!-- DispatcherServlet Context: defines this servlet's request-processing 
     infrastructure --> 

    <context:component-scan base-package="com.aitrich.learnware.web" /> 

    <!-- Enables the Spring MVC @Controller programming model --> 
    <mvc:annotation-driven /> 


    <!-- Maps '/' requests to the 'home' view --> 
    <mvc:view-controller path="/" view-name="home" /> 


    <!-- Handles HTTP GET requests for /resources/** by efficiently serving 
     up static resources in the ${webappRoot}/resources directory --> 

    <mvc:resources mapping="/resources/css/**" location="/resources/css/" /> 
    <mvc:resources mapping="/resources/js/libs/**" location="/resources/js/libs/" /> 
    <mvc:resources mapping="/resources/img/**" location="/resources/img/" /> 

    <!-- Internationalization support --> 

    <bean id="localeResolver" 
     class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> 
     <property name="defaultLocale" value="en_US" /> 
    </bean> 

    <bean id="localeChangeInterceptor" 
     class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
     <property name="paramName" value="language" /> 
    </bean> 

    <bean 
     class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"> 
     <property name="interceptors"> 
      <list> 
       <ref bean="localeChangeInterceptor" /> 
      </list> 
     </property> 
    </bean> 

    <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource"> 
     <property name="basename" value="locale/messages" /> 
    </bean> 

    <!-- **************************************************************** --> 
    <!-- THYMELEAF-SPECIFIC ARTIFACTS --> 
    <!-- TemplateResolver <- TemplateEngine <- ViewResolver --> 
    <!-- **************************************************************** --> 

    <bean id="templateResolver" 
     class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".html" /> 
     <property name="templateMode" value="HTML5" /> 
    </bean> 

    <bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine"> 
     <property name="templateResolver" ref="templateResolver" /> 
     <!-- These lines configure the dialects to use with Thymeleaf --> 
     <property name="dialects"> 
      <set> 
       <bean class="org.thymeleaf.spring3.dialect.SpringStandardDialect" /> 
       <bean class="nz.net.ultraq.web.thymeleaf.LayoutDialect" /> 
      </set> 
     </property> 
    </bean> 

    <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver"> 
     <property name="templateEngine" ref="templateEngine" /> 
    </bean> 

</beans> 

而且我使用thymeleaf像

<img src="../../resources/img/cancel.png" th:attr="[email protected]{resources/img/cancel.png}, title=#{background}, alt=#{background}" /> 

但没有什么是显示访问图像。 。!

+0

你尝试使用'/资源/ IMG/cancel.png'或'资源/ IMG/cancel.png'访问? – fmodos

+0

什么是你的战争文件中的图片路径(资源)? – dimchez

+0

的webapp /资源/ img.cancel.png –

回答

4

如果你有Java项目,你的资源/ IMG/**或资源/ CSS/**文件夹来下的WebContent你可以访问你的资源,这样

<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/styleV.css"  
type="text/css" /> 

和类似的图像和js文件的方式。

还是第二种方法是,你可以在web.xml中添加以下映射你的servlet。

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
    </servlet-mapping> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.png</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.jpg</url-pattern> 
</servlet-mapping> 

,并访问CSS作为

<link rel="stylesheet" type="text/css" href="resources/css/jquery-ui-1.8.22.custom.css"> 
+0

日Thnx由于其工作.. 和一个多我怎么可以访问使用SWF对象SWF文件??? –

1

尽量web.xml中添加

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.ico</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.png</url-pattern> 
</servlet-mapping> 

和位于我的CSS/JS/IMG - 的webapp/JS /,web应用程序/ IMG /,web应用程序/ CSS/

0

我只是在Linux上发现,我不得不删除起点在我的资源映射“/”!
在这里看到

<!-- NOTE the location does not have a starting /!!!! --> 
<resources mapping="/resources/**" location="resources/" /> 

男孩这样做使我有很多无奈。所有的例子有位置/前缀。现在它的伟大工程,通过调用C:URL模式下面的例子:

<link rel="stylesheet" 
href="<c:url value="/resources/css/coreStyle.css" />" type="text/css">