Web开发问题:ahref=当地址为远程⽂件时,Chrome浏览器⽆法访问
(Notallo。。。
⽂章⽬录
⼀个⼩故事(过程太曲折了,我⼀定要记录⼀下):
最近在搞⼀个快速链接的主页,本来以为这样就⾏了
<ul class="ul">
<li><a href="***:8081/" target="_blank">tool1</a></li>
<li><a href="***:8082/" target="_blank">tool2</a></li>
<li><a href="***:8083/" target="_blank">tool3</a></li>
<li><a href="***:8085/" target="_blank">tool4</a></li>
<li><a href="***:8086/" target="_blank">tool5</a></li>
<li><label >CPK</label></li>
<li><label >KGB/KFB</label></li>url
</ul>
结果还需要把打包过的软件也添加进去,于是就想还⽤上⾯的⽅式,通过a标签来访问远程服务器中的⽂件。此时的url会变成 file://你的路径
调试时,默认⽤的IE浏览器:如果插⼊的jpg,txt等这种浏览器可以预览的⽂件,IE会直接打开⽂件,如果是zip这种⽆法打开的⽂件,他会打开href中填写的⽂件夹。
百度过后得知,使⽤IE浏览器访问⽂件时,IE充当的是资源管理器的⾓⾊,所以可以正常访问。
到这⾥都还算没问题。
1、问题描述:
问题出现在了Chrome浏览器上:使⽤Chrome浏览器预览时,⽆论a标签的href指向什么⽂件都⽆法访问,显⽰的路径也都是对的,但是点击过后⼀点反应都没有。如果将链接拷贝下来,从地址栏访问⼜是可以正常访问的。
2、⼜是我曲折的探索历程:
然后我⽤记事本写了⼀个最简单的语句来访问该地址,此时⽤Chrome⼜可以访问了
<a href="//****/Open Score/test.jpg"></a>
所以,这句话本⾝是没有问题的,难道是我⽤的bootstrap把a标签的功能给重写了,我就⼜去百度,还真有⼀些讲bootstrap中的a标签的,但是我仔细看了看,好像和我搭軋啊,都是样式⽅⾯的。
我⼜想还有什么包会和它冲突?还是说我的⼯程⽂件有问题?于是我点开Chrome的调试窗⼝,点击标签的内容,哎嘿!有个报错!
不允许访问本地资源!本地资源,我这不是本地资源啊!
3、解决⽅法:
于是⼜去百度
总结⼀下⼤概是这个意思:出于安全性的考虑,Chrome浏览器是不可以直接访问本地资源的,如果你偏要访问,可以把他放⼊⼯程⽂件的某个⽂件夹⾥然后通过相对路径访问
绝对路径是⾏不通的,那我这完全⽤不了了啊,查了个寂寞!
还有⼀种可以通过修改配置⽂件,设置虚拟路径来解决
详情参考这个⽂章: 反正我也没看懂!
我⼀想还是不对啊,那为什么我直接写⼀个
<a href="//****/Open Score/test.jpg"></a>
浏览web是什么意思
⼜可以访问呢……
于是⼜回去百度:发现,只有服务器端的web才会有这种情况,你写⼀个本地的⽹页就不会有这个问题
所以我⼜改了个纯html+css的⽹页,然后部署到了我们的内部服务器上,本以为这样就好了……可是⼀上服务器,再从其他地⽅访问⼜不⾏了……果然我还是太天真了…原来只限本地使⽤…
所以⼜回去研究了⼀下上⾯的虚拟路径的⽅法,其实也不是特别难。
1、Visual Studio 配置虚拟路径
我使⽤的是Visual Studio 2017,它配置虚拟路径的是在⼀个隐藏的⽂件夹⾥,按如下操作到.vs/fig⽂件
打开⽂件,到他的 <sites> </sites>标签, 在红⾊框的位置添加虚拟路径,如下,就是我添加的。
<application path="/VirtualPath" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="\\10.136.16.135\Software Sync"/>
</application>
<!--
/VirtualPath:是我虚拟的⼀个路径
\\10.136.16.135\Software Sync:是这个虚拟路径的实际地址
-->
这⼀通操作之后,你的<a></a>标签href⾥的内容就可以改成这样了
<ul class="ul">
<li><a href="VirtualPath\M56\M56 Color Label Print\M56 Color Label Print.zip">M56 Color Label Print</a></li>
<li><a href="VirtualPath\M56\M56 Serial Number Print\M56 Serial Number Print.zip">M56 Serial Number Print</a></li>
</ul>
其实这样还没有好,因为你本地调试的时候,有可能会出现500.19这个错误
就像这篇⽂章⾥⼀样:反正我出现了,但是百度好久没到BuildCode的时候该怎么解决,都是在架设
IIS时的解决办法,所以我就想⼲脆先去把⽹站搭起来算了。
2、IIS搭服务器时配置虚拟路径
这个就更简单了,新建web就跳过了啊,然后 右键项⽬->Add Virtual Directory 就可以配置你的虚拟路径了,详情参考:,然后我测试了⼀下⽹站,竟然可以了。如果这时候你还有500.19这个错误,可以参考这个:,其实说⽩了就是把你要⽤的这个⽂件夹共享出去,让所有⼈都可以看到。
以上我的问题就解决了!
4、最后还有⼀点
在Chrome中:如果插⼊的是jpg,txt等这种浏览器可以预览的⽂件,他会直接打开⽂件,如果是zip这种⽆法打开的⽂件,他会⾃动下载该⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。