首頁  >  問答  >  主體

java-ee - nginx反向代理tomcat時資源檔案處理問題

nginx上配置如下


48 location ^~ /bgmonitor/ { 50 proxy_pass http://localhost:8080/; 51 }

形如www.mr.org/bgmonitor的請求轉送至本地8080埠的tomcat

tomcat配置如下

 <Context docBase="/Users/mr/Documents/code_pool/bgmonitor-git/bgmonitor-web/target/bgmonitor" path="" reloadable="true"/>

頁面渲染使用velocity,資源檔案引用路徑為:

   <!-- bootstrap 3.0.2 -->
    <link href="${rc.contextPath}/css/bootstrap.css" rel="stylesheet" type="text/css"/>
    <!-- font Awesome -->
    <link href="${rc.contextPath}/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
    <!-- Ionicons -->
    <link href="${rc.contextPath}/css/ionicons.min.css" rel="stylesheet" type="text/css"/>
    <!-- Theme style -->
    <link href="${rc.contextPath}/css/AdminLTE.css" rel="stylesheet" type="text/css"/>

現象

訪問時由於${rc.contextPath}取出為空,導致整個資源路徑變為/css/AdminLTE.css ,這個請求發到nginx後就沒法正常轉發啦

怎麼做才能在最小修改的情況下讓整個應用程式正常?

迷茫迷茫2734 天前605

全部回覆(2)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:25:08

    靜態文件不需要轉發,在 nginx 本機上部署靜態文件,例如

    location ~* ^/(?:images/|js/|css/) {
        root /home/app/htdocs;
    }
    

    具體如何配置參考文件

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:25:08

    詳見部落格:
    http://blog.iaceob.name/nginx-proxy/
    以及
    http://blog.iaceob.name/tomcat-multi-domain-binding/

    便是我使用的解決方案, 只是我個人這麼使用而已, 暫未發現有別人這麼使用過.

    回覆
    0
  • 取消回覆