<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JBOSS 點(diǎn)滴

    豐豐的博客

    Spring MVC程序中得到靜態(tài)資源文件css,js,圖片文件的路徑問題總結(jié)

    Spring MVC程序中得到靜態(tài)資源文件css,js,圖片

    文件的路徑


    問題總結(jié)

    用 Spring MVC 開發(fā)應(yīng)用程序,對(duì)于初學(xué)者有一個(gè)很頭疼的問題,那就是程序數(shù)據(jù)都已經(jīng)查詢出來了,但界面樣式仍然十分丑陋,加載不了 css,js,圖片等資源文件。當(dāng)你在瀏覽器上直接輸入某個(gè)css文件的路徑時(shí),直接得到404錯(cuò)誤,而路徑肯定沒有錯(cuò),其原因就在于在web.xml 中配置了類似如下的 spring servlet:
    程序代碼 程序代碼

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>

    請(qǐng)注意  <url-pattern>/</url-pattern> 這表示這個(gè)servlet 攔截了所有的請(qǐng)求,包括css,js等。所以出現(xiàn)上面描述的情況。如何解決這個(gè)css,js等路徑問題呢,有如下幾種解決方案.

    1. 使用spring mvc resource 去讀取靜態(tài)文件
    比如在 WEN-INF 下建立static 文件夾,并在 static 文件夾里面建立css 文件夾,然后建立 1.css  文件.
    修改 mvc-dispatcher-servlet.xml 文件
    程序代碼 程序代碼

    <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>

    這樣配置之后,可以通過 http://your-ip:port/your-app/static/css/1.css 直接訪問了。

    2. 采用 default servlet
    在 web.xml  里面配置
    程序代碼 程序代碼

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>

    這樣做了之后,所有前綴為static 的請(qǐng)求都交給default servlet 去處理。如果你請(qǐng)求  http://your-ip:port/your-app/static/css/1.css ,就表示在 webcontent 目錄下的css文件夾下的1.css文件。

    3. 通過文件擴(kuò)展名進(jìn)行處理
    在 web.xml 里面配置
    程序代碼 程序代碼

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


    4. 對(duì)spring servlet 不用restful 風(fēng)格。在url 上加上前綴
    程序代碼 程序代碼

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/app</url-pattern>
    </servlet-mapping>

    這樣做的目的是讓 dispatchservlet 去攔截以/app 開頭的那些 URL,并不攔截css,js等。

    5. 對(duì)spring servlet 不用restful 風(fēng)格。在url 上加上后綴
    程序代碼 程序代碼

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    這樣做的目的是讓 dispatchservlet 只攔截*.do 的url. 并不攔截css,js等。

    上面介紹的5種方法,根據(jù)情況自己任意選擇一種,現(xiàn)在沒辦法說那種好,那種方法不好,都有可取之處,用在不同的場(chǎng)景而已。

    posted on 2014-08-24 23:12 半導(dǎo)體 閱讀(23882) 評(píng)論(3)  編輯  收藏 所屬分類: JAVA環(huán)境配置

    評(píng)論

    # re: Spring MVC程序中得到靜態(tài)資源文件css,js,圖片文件的路徑問題總結(jié) 2016-03-17 15:04 王企鵝

    文青  回復(fù)  更多評(píng)論   

    # re: Spring MVC程序中得到靜態(tài)資源文件css,js,圖片文件的路徑問題總結(jié) 2016-03-22 16:48 路人甲

    非常直觀的解決了我的問題,很又幫助,謝謝。竟然不知道這個(gè) default servlet 的用法,學(xué)習(xí)了。  回復(fù)  更多評(píng)論   

    # re: Spring MVC程序中得到靜態(tài)資源文件css,js,圖片文件的路徑問題總結(jié) 2016-05-12 13:47 小小學(xué)渣

    非常直觀的解決了我的問題,很又幫助,謝謝。  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲高清免费视频| 性xxxxx大片免费视频| 亚洲午夜久久久久久久久电影网| 国产亚洲精品免费视频播放| 三年片在线观看免费观看大全动漫| 久久九九亚洲精品| 无码精品A∨在线观看免费| 亚洲日本VA午夜在线影院| 亚洲裸男gv网站| 18勿入网站免费永久| 国产亚洲美女精品久久久久| 国产成人亚洲综合无码精品 | a级毛片免费观看在线| 久久综合亚洲色HEZYO社区 | 日韩视频在线免费观看| 国产在线精品观看免费观看| 亚洲国产成人精品青青草原| 亚洲国产成人久久精品99| 88av免费观看| 特级毛片在线大全免费播放| 免费一级e一片在线播放| 日本免费人成视频在线观看| 久久综合亚洲色hezyo| 亚洲乱亚洲乱淫久久| 亚洲成av人片一区二区三区| 亚洲免费福利视频| 乱爱性全过程免费视频| 亚洲一区二区三区无码国产| 亚洲精品高清国产一线久久| 日本高清免费网站| h在线观看视频免费网站| 亚洲国产免费综合| 亚洲码和欧洲码一码二码三码| 亚洲av伊人久久综合密臀性色| 国产精品国产自线拍免费软件| 67194国产精品免费观看| 久久精品无码专区免费| 亚洲国产成人精品无码区二本| 久久亚洲精品成人无码网站| 亚洲日韩精品射精日| 免费国产人做人视频在线观看|