关于springmvc静态资源常被忽视,有可能致命的点

来源:互联网 发布:淘宝助理老版本 编辑:程序博客网 时间:2024/06/13 09:15

我的项目用的是ssm,静态资源访问用的Springmvc默认的

<mvc:default-servlet-handler/>

,一直没有问题,今天突然给我报了这样一个错:

Resource interpreted as Stylesheet but transferred with MIME type application/json: "http://....../css/photoswipe.css".

我认真检查了下,type是stylesheet没错啊,既然这里没错只能是服务器错误了!

分析下:首先我们请求一个css样式,是向服务器发送一个请求,然后服务器给浏览器一个响应,试想一下,假如就访问上述的css,如果服务器给的报文中contenttype:application/json呢?是不是就是这个问题了?所以这个肯定是服务器给的报文不对,所以虽然是个css样式表,但是浏览器接收到之后,根据报文解释,浏览器读到他接受的是什么?application/json,然而原本是css,所以这时候浏览器就解释不了了,因为按照报文这是个json文件,然而你给我的是css,我怎么解释?猴年对不住马月把?所以最后坑了我半天,我曾尝试在配置文件中加上<mvc:resources/>依然报这个问题,最后的解决办法是在web.xml文件中加入默认静态资源过滤,如下:

<servlet-mapping>  <servlet-name>default</servlet-name>  <url-pattern>*.js</url-pattern>  <url-pattern>*.css</url-pattern>  <url-pattern>*.jpg</url-pattern>  <url-pattern>*.png</url-pattern>  <url-pattern>*.mp4</url-pattern>  <url-pattern>*.gif</url-pattern>  <url-pattern>*.jpeg</url-pattern>  <url-pattern>*.avi</url-pattern>  <url-pattern>*.bmp</url-pattern></servlet-mapping>
如此问题解决,如此给出我的"尴尬"经历,希望给那些也报类似错误的一点点帮助,不至于碰见了不知道从何下手!

1 0