專案部署到Tomcat後訪問本地資料夾中的檔案
最近專案中遇到<iframe>巢狀本地靜態HTML檔案的問題,開始的時候怎麼搞都不行
原因:瀏覽器處於安全考慮不允許載入本地資源
解決辦法:在Tomcat的server.xml和web.xml中配置虛擬路徑
路徑資訊:Tomcat安裝路徑下的conf資料夾 (D:\Program Files\Tomcat\apache-tomcat-7.0.73\conf)
第一步:在server.xml檔案最後的<Host></Host>內部 新增虛擬路徑
<Context path="/download" docBase="D:/WPTX/bom/dashboard/download"debug="0" reloadable="true" />
path:匹配路徑開頭。
docBase:你要訪問的本地資源路徑資訊,不包含檔案!
如果同時新增兩個路徑的話可以如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="microCourse" reloadable="true" crossContext="true"/>
<Context path="/video" docBase="F:\video\" reloadable="true" crossContext="true"/>
第二步:改完server.xml檔案之後還要改 web.xml檔案中的<servlet>配置,改完之後就可以了
訪問的時候可以這樣訪問:
如果你的download資料夾下邊還有其他的資料夾,比如還有 html 資料夾
那麼,訪問形式是:/download/html/*.html(*.html是檔名) 也可以是 IP 加上/download/html/*.html 比如 https://cas.wptx.com.cn:8443\download\resource\dawnload_1_5924ae7f24ae7f630000.docx
如果沒有其他檔案夾了,直接/download/*.html 就可以了
最後由於路徑中會含有中文,tomcat預設不支援中文,需要配置server.xml
conf目錄中server.xml
<Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />