SpringMVC项目访问不了js,css,img等静态资源

解决办法:

修改web.xml文件

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.html</url-pattern>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

转载于:https://my.oschina.net/zhaoxiaohuan/blog/188893

### SpringMVC框架中静态资源无法访问的解决方案 在SpringMVC框架中,如果遇到静态资源(如CSSJS、图片等)无法访问的问题,通常是因为前端控制器`DispatcherServlet`拦截了所有的请求,包括对静态资源的请求。以下是几种常见的解决方法: #### 方法一:通过`<mvc:resources>`标签配置 可以使用Spring MVC提供的`<mvc:resources>`标签来指定哪些URL模式下的资源不应被`DispatcherServlet`拦截,而是由容器直接提供服务。 ```xml <!-- 配置静态资源不被拦截 --> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/img/**" location="/img/" /> ``` 此配置表示匹配`/css/**`、`/js/**`和`/img/**`路径的请求将直接返回对应的静态文件[^4]。 --- #### 方法二:通过`<servlet-mapping>`映射默认Servlet 可以在`web.xml`中配置让Web容器中的默认Servlet处理特定路径下的静态资源请求。例如: ```xml <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping> ``` 在此配置中,所有以`/static/`开头的请求都将交由Tomcat自带的`default` Servlet处理,从而绕过`DispatcherServlet`[^3]。 --- #### 方法三:调整Spring MVC的全局拦截规则 可以通过设置`<mvc:default-servlet-handler/>`启用默认Servlet处理器,这样未匹配任何Controller的请求会被转发给Web应用服务器的默认Servlet去处理静态资源。 ```xml <mvc:default-servlet-handler/> ``` 这种方式适用于希望保留原有目录结构的同时允许某些路径上的静态资源正常加载[^4]。 --- #### 方法四:检查文件路径与部署位置 即使进行了上述配置,仍需确认实际项目的文件夹结构是否正确以及静态资源的实际存储位置是否与配置一致。例如,假设HTML页面尝试加载位于`/js/script.js`的脚本,则必须确保该文件确实存在于WAR包解压后的相应目录下[^2]。 --- #### 方法五:调试并验证资源配置 最后,在完成以上任一种方式之后,建议重启应用程序,并利用浏览器开发者工具查看网络请求的状态码及响应内容,判断问题是否已经得到妥善解决。 --- ### 总结 针对SpringMVC项目静态资源不可见的现象,可采取多种手段加以应对,具体选择取决于个人偏好和技术环境的要求。无论是采用XML声明式的资源管理器定义还是依赖于内置机制实现例外处理,都需要仔细核验最终效果以保证预期行为得以体现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值