最近项目中遇到<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" />