首页 新闻 会员 周边 捐助

配置了<mvc:default-servlet-handler />还是不能访问静态资源

0
悬赏园豆:20 [已解决问题] 解决于 2017-08-02 09:29

使用Maven构建的项目中配置了<mvc:default-servlet-handler />却还是不能访问静态资源,三种访问静态资源的处理方式都试过了,全都不行。

详细配置如下:

springMVC-servlet.xml

<?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:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans.xsd 
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/context/spring-aop.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context.xsd 
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 注册组件扫描器 -->
    <context:component-scan base-package="com.ztyz.teen.*" />

    <context:annotation-config />

    <!-- 注册HandlerMapper、HandlerAdapter两个映射类 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 访问静态资源 -->
    <mvc:default-servlet-handler />

    <!-- 视图解析器 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

web.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- 注册字符集过滤器 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 注册中央处理器 -->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 指定springMVC配置文件的路径及文件名 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springMVC-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
复制代码

文件存放路径如下:

纠结好久了,急!!!大神们给看看

冷锋SJ记忆的主页 冷锋SJ记忆 | 初学一级 | 园豆:188
提问于:2017-05-22 05:08
< >
分享
最佳答案
1
<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
 </servlet-mapping>

试一下这个,注意要写在其他servlet前面

收获园豆:15
狼爷 | 小虾三级 |园豆:1204 | 2017-05-22 09:24

这个我已经试过了,没有用

冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-22 11:49
其他回答(4)
0

静态资源好像系统默认是关闭的,需要设置开启。。

收获园豆:5
彬s | 园豆:207 (菜鸟二级) | 2017-05-22 08:40

这个怎么设置开启呢?能不能详细说说

支持(0) 反对(0) 冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-22 11:50

@冷锋SJ记忆: springMVC-servlet.xml 会不会是在这个里面少写了一句default-lazy-init="true 我今天遇到一个 加上了莫名其妙的就好了  也不知道是不是这回事

支持(0) 反对(0) 吉吉的城 | 园豆:566 (小虾三级) | 2017-05-22 20:56

@吉吉的城: 谢谢你的回答,default-lazy-init="true"是spring对数据库的懒加载参数,主要是减少web服务器运行时负担采用的,对静态资源没有影响

支持(0) 反对(0) 冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-22 23:45

@吉吉的城: 我这问题也没解决,暂时只需要从网络加载js等资源就可以了,所以先放一放吧

支持(0) 反对(0) 冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-22 23:50

@冷锋SJ记忆:maven项目默认的路径是不是在/WEB-INF底下的吗??

支持(0) 反对(0) 吉吉的城 | 园豆:566 (小虾三级) | 2017-05-22 23:52

@吉吉的城: 我放到WEB-INF下面试过了,不行

支持(0) 反对(0) 冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-22 23:59

@冷锋SJ记忆: 哦哦 我也帮你研究下 有结果了给你说 你如果有解决的办法也给我说下 谢谢

支持(0) 反对(0) 吉吉的城 | 园豆:566 (小虾三级) | 2017-05-23 00:05

@吉吉的城: OK

支持(0) 反对(0) 冷锋SJ记忆 | 园豆:188 (初学一级) | 2017-05-23 00:06
0

问题解决了  能给我发下原因吗!!谢谢了

吉吉的城 | 园豆:566 (小虾三级) | 2017-05-22 20:53
0

楼主你cotroller的RequestMapping写了吗.........

@Controller
public class HomeController {

@RequestMapping()
public String toindex() {
return "index";
}
}

如果没写,就会一直转向index页面,然后浏览器上就会出现类似静态资源被拦截的现象

bobob1 | 园豆:202 (菜鸟二级) | 2017-09-21 21:55
0

必须在webapp目录下建一个static目录,然后把静态资源放里面,这个标签才能生效

_今夜打老虎 | 园豆:202 (菜鸟二级) | 2021-11-01 21:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册