IDEA 中tomcat圖片儲存和訪問虛擬路徑
目錄
1、idea 修改Tomcat的虛擬路徑(第一種方法)
修改配置檔案有很多種,但是一直不成功;後來想還是idea的配置原因,這裡tomcat虛擬路徑只說一種;
修改Tomcat安裝路徑下server.xml的檔案,路徑:apache-tomcat-8.5.15\conf\server.xml
a、在Host節點下加入:
<Context path="/image" docBase="E:\ImgPath" reloadable="false" ></Context>
path:代表虛擬路徑;即返回給客戶端的地址;
docBase:代表絕對路徑;檔案儲存的實體地址;
reloadable:代表不需要重啟Tomcat,更新即可生效;
b、開啟Edit Configurations
在Tomcat的Server頁,勾選上Deploy applications configured in Tomcat instance
以上a、b兩步配置完即可。
2、idea 修改Tomcat的虛擬路徑(第二種方法)
a、取消勾選Deploy applications configured in Tomcat instance
訪問即可
3.設定虛擬目錄對映一般有兩種用途:
(1)把整個web應用對映到tomcat中:
如一個testapp的web應用的路徑是/opt/testapp,則通過虛擬目錄對映可以將其對映到tomcat(webapps)中。
(2)將外部資源對映到tomcat中以便使用:
如將一些圖片、文件等放在/opt/documents中,則可以將其對映到tomcat中以便使用,如下載等。原理同(1)類似。
1 在${CATALINA_HOME}/conf/server.xml中進行配置
在 <host> </host>之間加入如下程式碼:
<Context path="/virtualpath" reloadable="true" debug="0" docBase="/path/to/testapp" workDir="/path/to/work" crossContext="true" > </Context>
docBase 是實際路徑,一般為絕對磁碟路徑,也可以寫相對路徑,相對路徑是相對於tomcat安裝目錄的webapps目錄,通常設定虛擬目錄的目的是將tomcat的安裝和專案的儲存分開,所以這裡建議使用磁碟絕對路徑,並且這個磁碟路徑不是在tomcat目錄下。
workDir 是tomcat執行是對JSP檔案做編譯後的檔案,這個檔案最好也是分開。 path 為虛擬路徑,訪問時的路徑,注意:一定要加“/”。值得注意的是:path可以為"/"那麼訪問“IP:埠”就可以訪問到佈置的工程,如果為"/test",那麼必須得訪問“IP:埠/test”才能訪問到。 debug 建議設定為0
reloadable設定為true。
如果在測試中出現404的錯誤,如果前面配置沒有錯,可能就是在$CATALINA_HOME/conf/web.xml檔案中把虛擬路徑顯示目錄給禁止了,此時可以在web.xml檔案中找到:
<param-name>listings</param-name>
<param-value>false</param-value>
將listings的value改為true,然後重新啟動tomcat。
上面的修改是全域性修改。若在某一個應用中開啟listing時,在WEB-INF/web.xml中:
<servlet>
<servlet-name>media</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>media</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2 最佳配置
$CATALINA_BASE/conf/Catalina/localhost/ 資料夾下建立一個xml檔案,任意檔名都可以,但是此檔名是web應用釋出後的虛擬目錄; 比如建立一個test.xml,在檔案中新增
<Context path="/test" reloadable="true" docBase="/path/to/your/directory" workDir=""/>
屬性的含義同上。不需要重啟伺服器。
例項:將web專案對映到tomcat中,不需要每次都手動釋出。
位置:/conf 資料夾裡的server.xml檔案
在 <host> </host>之間加入如下程式碼:
<Context path="/mysshtest" docBase="C:\Users\admin\Desktop\mysshtest\mysshtest\WebRoot" reloadable="true"/>