1. 程式人生 > >Tomcat上部署web專案的目錄問題

Tomcat上部署web專案的目錄問題

記錄下最近學習Tomcat關於目錄的問題。

首先明確一個概念,從瀏覽器訪問伺服器的URL是對映到了伺服器上的一個目錄的某一個資原始檔,打一個比方,有如下一條URL:http://192.168.2.99:8000/book/test.html,在不考慮內容協商的情況下,解釋如下

  • 192.168.2.99:這是伺服器的IP地址。
  • 8000:是Tomcat服務監聽的埠號。
  • /book:這個book並不一定代表伺服器上的某一個實際存在的book目錄,可以把它理解為一個目錄的替換。
  • test.html:瀏覽器請求的資原始檔。

關於根目錄:有2種方式設定web站點的根目錄

  • <Tocamt主目錄>/webapps/ROOT目錄自動對映成為Web站點的根目錄,所以將web專案放進ROOT目錄下就可以在瀏覽器進行訪問了。
  • 如果不想用預設的ROOT根目錄,可以找到<Tomcat>/conf/server.xml檔案,找到如下<Host>標籤格式應該如:<Hostname="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true">,新增如下格式的XML語句<Context path="" docBase="d:/test" debug="0" reloadable="true"/>。其中path=""時代表根目錄,上邊那條XML語句便將根目錄設定為了"d:\test"。

關於虛擬子目錄:

  • 依舊使用<context path="" docBase="d:/test" debug="0" reloadable="true"/>格式設定虛擬子目錄,當path不等於“”時,如:<context path="/book" docBase="d:/test" debug="0" reloadable="true"/>便將d:\test目錄對映成了/book子目錄。對於URL:http://192.168.2.99:8000/book/test.html,如果未設定虛擬子目錄為/book,訪問的是:根目錄/book/test.html,如果有設定虛擬子目錄,假設為d:\test,則訪問的是d:\test\test.html。
    對於<context>標籤裡的docBase屬性,可以為絕對路徑,也可以為相對路徑,如果為相對路徑,則基準路徑為<Host>標籤裡面的appBase。
  • 也可以不修改server.xml檔案,在tomcat\conf\Catalina\localhost目錄下新增project.xml檔案,新增如下格式語句:<Context path="/project" reloadable="true" docBase="d:/Test" workDir="D:/Test/work" />。對於URL:http://192.168.2.99:8000/project/test.html,訪問的則是D:\test\test.html。