url 中包含双斜杠的巧妙处理

url 中包含双斜杠的巧妙处理,第1张

CDN 资源地址:在 domain 和 相对资源地址 拼接的时候,多了一个 斜杠

我们知道 https 的地址,是兼容 双斜杠 的,如 item 前的双斜杠:

https://b-ssl.duitang.com/uploads//item/201603/04/20160304171613_rTUdV.jpeg

https://b-ssl.duitang.com/uploads/item/201603/04/20160304171613_rTUdV.jpeg

如果双斜杠CDN地址是在 https 请求的时候,是可以兼容的,所以不会出现问题。

但临时更换为 http 请求的时候,问题就出现了,资源加载 404 。

发新版App可以解决问题,但是成本较高。

最后同事发现一个巧妙的方法,CDN 重新上传一次该资源,并特意将文件路径改为 双斜杠 的,这样就可以访问到资源了,也不必发版了。

直接通过正则表达式进行替换即可(备注:反斜杠为"\",正斜杠为"/")

代码如下:

public class Test {

public static void main(String[] args) {

String path = "D:\\FTP\\admin\\bird.gif"//文件路径,双斜杠输出的是一个斜杠

System.out.println(path)//打印路径

//JAVA中正则表达式,用"\\\\"表示"\"

path = path.replaceAll("\\\\", "/")

System.out.println(path)//打印路径

}

}

输出结果为:

D:\FTP\admin\bird.gif

D:/FTP/admin/bird.gif

\是文件的路径,如c:\windows\system\……

/是用在dos命令中加参数,DIR——显示磁盘目录命令

1.功能:显示磁盘目录的内容。

2.类型:内部命令

3.格式:DIR [盘符][路径][/P][/W]

使用说明:/P的使用当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示Press

any key to continue

/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。

Unix使用斜杆/作为路径分隔符,而web应用在Unix系统上面,所有的网络地址都采用斜杆/作为分隔符。

Windows由于使用斜杆/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠\作为路径分隔符。所以目前windows系统上的文件浏览器都是用反斜杠\ 作为路径分隔符。

总结:

(1)浏览器地址栏网址使用斜杆/

(2)windows文件浏览器上使用反斜杠\

(3)出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用斜杆/ // 如果url后面用反斜杠,就不会显示任何背景

(4)出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/ 和 反斜杠\ 是一样的如果代表的是网络文件路径,则必须使用 斜杆/

// 本地文件路径,/ 和 \ 是等效的

// 网络文件路径,一定要使用斜杆/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11926835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存