我们知道 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文件路径,则使用 斜杆/ 和 反斜杠\ 是一样的如果代表的是网络文件路径,则必须使用 斜杆/
// 本地文件路径,/ 和 \ 是等效的
// 网络文件路径,一定要使用斜杆/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)