美文网首页
关于SpringMVC静态资源失效

关于SpringMVC静态资源失效

作者: 盐焗鸡YanJJ | 来源:发表于2020-03-16 16:08 被阅读0次

    方法有三种,其一是web.xml中添加

    <servlet-mapping>

        <servlet-name>default</servlet-name>

        <url-pattern>*.js</url-pattern>

    </servlet-mapping>


        参考地址:https://www.cnblogs.com/mophy/p/8465598.html

        记录排错,有一种办法是在dispatcher.xml使用<mvc:resources mapping="" location=""/>

        通过Mapping和location设置路径地址让dispathcher忽略地址下静态资源

        经测试,在一个项目中对JS文件有效,在另一个项目中使用时导致了Controller地址找不到的问题,再查询得知,需启用<mvc:annotation-driven/>注解扫描,但启动后仍失败,没有发现问题根本原因。

        采用了上面的解决办法,在这里记录一下,以上。


        2020/4/8号

        再次遇到该问题,这次遇到后使用了无数办法包括

        web.xml - springmvc.xml - 修改绝对路径 - 重启IDEA intellJ - 配置默认servlet的xml标签统统失效

        其次发现在谷歌浏览器的检查器中显示原先的src访问路径没有发生改变,通过修改了html内容,不知为何导致刷新了对静态资源的路径加载地址修改,成功导入CSS,但重复该方法在导入JS的测试中再次失败。

        通过对照试验测试,尝试调换了css和js位于web.xml中的servlet-mapping加载顺序,发现在调换过程后,原先成功的CSS失效了,但JS成功加载,我误以为是因为下面这种写法

    <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写,导致下方的default内容覆盖了上方,于是将url-pattern组合到一起。但发生爆红,强制测试仍然是同样结果,原先成功的CSS失效JS成功加载。

        于是因为不稳定刷新加载情况,不是浏览器缓存,我想到了可能是xml由某种缓存方式存了起来。

        xml的配置初衷是因为Spring框架需要通过动态代理和反射技术加载配置数据进入框架内,加载方法由Spring编写好了,如果方法没问题,问题一定发生在中间,也就是浏览器之前,运行tomcat之后,那么,真相只有一个!

        没错,是Maven

        ?????

        哈哈哈哈,开始下意识反应,一定是XML和Tomcat拥有某种我不知道的奇妙缓存机制,经过搜索发现,这俩默认缓存机制不会,也不可能在设计中默认捆绑xml的数据缓存,这非常鸡肋,会导致配置设置繁杂难用

        然后,我看到了有个帖子说清除tomcat的缓存方法是打开maven菜单的clear

        噢~~~,我顿悟了

        仔细观察就会发现,其实maven的clear功能不是清除tomcat的缓存,而是清除了maven对项目打包的部署文件,也就是没用maven之前,idea的out文件夹 / war包 / 编译文件。

        tomcat会将编译好的部署文件真正塞进肚子里进行部署运行。

        静态资源失效,正是因为maven没有像我以为的那样频繁自动把文件打包编译。代码编写没有问题,问题出在写了之后,即使在Ctrl+s保存之后,代码没有编译进要加载的服务器内。以致编写地址没有找到。

        加载成功后,再次测试img文件,写完代码使用maven先clear在install,代码成功部署,资源找到,

        问题解决

    相关文章

      网友评论

          本文标题:关于SpringMVC静态资源失效

          本文链接:https://www.haomeiwen.com/subject/zlagehtx.html