我正在尝试在现有网站上预览新创建的图像。我希望能够在Firefox中打开开发工具(Inspector(,并将背景图像的url编辑到我的本地文件中,以快速预览它的外观。
当我将文件拖到Firefox上打开时,它会在地址栏中打开,如下所示:file:///Users/ian/Desktop/format-BG.jpg
我将该文件路径复制到我的检查器中:background-image: url(file:///Users/ian/Desktop/format-BG.jpg);
,但它没有加载。奇怪的是,当我点击检查器中的URL时,它会打开";不可装载的";新选项卡中的图像,该选项卡在地址栏中具有完全相同的URL,但未加载。
这是安全功能还是什么?
MacOs 11.4(20F71(Firefox 89.0(64位(
是的,这是一个安全功能。想象一下,浏览器会以这种方式加载本地文件。然后嵌入在页面中的JavaScript也可以访问这些信息。
邪恶网站以这种方式直接访问文件系统,而无需任何用户交互。因此,所有浏览器都会阻止对通过file://
方案引用的文件的访问。
话虽如此,应该如何处理file://
方案的行为仍然没有标准化(参见https://github.com/whatwg/html/issues/3099)。因此,不同的浏览器对待通过file://
方案引用的本地文件有点不同。
以下是一些链接以供进一步阅读:
- https://textslashplain.com/2019/10/09/navigating-to-file-urls/
- https://security.stackexchange.com/questions/153706/why-local-links-are-disabled-by-default-in-modern-browsers
- https://security.stackexchange.com/questions/201208/why-do-browsers-disallow-accessing-files-from-local-file-system-even-if-the-html
不过,似乎有一种方法可以改变这种行为,如https://superuser.com/a/1513162.