如何在“--allow-file-access-from-files”模式下使用Chrome启动html?

IT技术 javascript html google-chrome
2021-01-22 08:44:23

我和这里有同样的情况

为了解决这个问题,我必须在“--allow-file-access-from-files”模式下使用 Chrome 启动 html 文件。我尝试了很多次下一步,但它不起作用。

  1. windows 7下启动cmd
  2. 直接到 chrome.exe 文件夹
  3. 做这个 chrome --allow-file-access-from-files file:///C:/test%20-%203.html
6个回答

那个旗帜很危险!!使您的文件系统保持开放以供访问。默认情况下,源自任何地方(本地或 Web)的文档不应访问本地 file:/// 资源。

更好的解决方案是在本地运行一个小的 http 服务器。

--- 对于 Windows ---

最简单的方法是使用 node 的包管理器全局安装 http-server:

npm install -g http-server

然后只需http-server在您的任何项目目录中运行:

例如。 d:\my_project> http-server

Starting up http-server, serving ./
Available on:
 http:169.254.116.232:8080
 http:192.168.88.1:8080
 http:192.168.0.7:8080
 http:127.0.0.1:8080
Hit CTRL-C to stop the server

或者按照 prusswan 的建议,您也可以在 windows 下安装 Python,并按照以下说明进行操作。

--- 对于 Linux ---

由于 Python 通常在大多数 linux 发行版中可用,只需python -m SimpleHTTPServer在您的项目目录中运行,您就可以将页面加载到http://localhost:8000

在 Python 3 中,该SimpleHTTPServermodule已合并到 中http.server,因此新命令是python3 -m http.server.

简单,并且没有意外让您的浏览器打开易受攻击的安全风险。

有趣的是,你会建议人们在 Windows 上安装 node 而不是 python,只是为了托管这个简单的服务器。好像 python 选项不适合 Windows (它不是)。 当你只有一把锤子时,一切看起来都像钉子?
2021-03-17 08:44:23
这不是问题的答案。有些人可能真的需要这个,例如我正在使用一个特殊的 webkit 应用程序库 Coherent UIGT。当我测试时,我需要本地文件访问。顺便说一句,Firefox 支持 file:// 加载另一个本地文件。
2021-03-24 08:44:23
这应该是公认的答案!我来这里是为了寻找在--allow-file-access-to-filesChrome(和 Opera)中使用命令行选项的正确方法你的回答让我知道我的问题是错误的,这是一个重要的原因。最重要的是,您已经以简洁、易于遵循的方式编写了解决方案。感谢十亿!我还建议,@orszaczky,您为原始问题中链接的 SO 问题(即另一个问题)编写基本相同的答案我可以写它,但你值得称赞。
2021-03-28 08:44:23
这个答案只是在散播恐惧。--allow-file-access-from-files选项允许file://网页访问其他file://资源,仅此而已。它不会让您的文件系统保持打开状态。
2021-04-05 08:44:23
这可能确实是一个很好的建议,但它实际上并不是问题的答案。问题不是“在 chrome 中访问本地文件的最佳方式是什么”,而是“我如何使用此标志启动”。如果您意识到风险并且不打开任何不是您创建的内容,或者您​​甚至不在线.. 这完全没问题。这很有用是有原因的..我认为这是谷歌将其作为一个选项的原因。
2021-04-09 08:44:23

搜索您的 Chrome 可执行文件的路径,然后在您的 cmd 上尝试:

> "C:\PathTo\Chrome.exe" --allow-file-access-from-files

来源

编辑: 正如我在你的问题中看到的,不要忘记 Windows 有点类似于 Unix,所以当你输入“chrome ...”时,cmd 将在 PATH 中搜索 Chrome,但通常 Chrome 文件夹是不在 PATH 上。此外,您没有为可执行文件指定扩展名...因此,如果您移动到 ​​Chrome 的文件夹,此命令也可能会起作用:

> .\chrome.exe --allow-file-access-from-files
我重新启动了我的电脑并按照你说的做,看起来没问题。谢谢你。
2021-03-11 08:44:23
根据 Philippe 的评论,您需要退出所有 chrome 进程并使用命令行选项重新启动。(Windows 7的)
2021-03-13 08:44:23
@Abdul 是的,完全正确,除非您使用该标志创建快捷方式并从中启动 Chrome。
2021-03-19 08:44:23
如果在重新启动 Chrome 后它不起作用,请检查正在运行的后台进程(时钟附近的 chrome 图标)。您可能打开了“让 Google Chrome 在后台运行”选项。
2021-04-01 08:44:23
Windows PowerShell 中的 Star Chrome: Start-Process "chrome.exe" "--allow-file-access-from-files"
2021-04-01 08:44:23

您可能想尝试Web Server for Chrome,它使用 HTTP 从本地文件夹提供网页。它使用起来很简单,并且可以避免使用标志,正如上面提到的那样,这可能会使您的文件系统容易受到攻击。

适用于 Chrome 的 Web 服务器的屏幕截图

杰出的。这是我正在寻找的用户友好的解决方案,谢谢。
2021-03-11 08:44:23
那太棒了。正是这个问题需要什么。
2021-03-31 08:44:23

在撰写本文时,在 OS X 中,它通常看起来像这样

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

如果你像我一样是个怪胎,把你的应用程序放进去~/Applications,那么它会是

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

如果这些都不起作用,那么chrome://version在你的 Chrome 地址栏中输入,它会告诉你应该使用什么“命令行”调用。只需添加--allow-file-access-from-files

“chrome://version 在你的 Chrome 地址栏中,它会告诉你你应该使用什么“命令行”调用”这点
2021-04-04 08:44:23

不要这样做! 你正在打开你的机器进行攻击而是运行本地服务器。就像打开外壳/终端/命令行并输入一样简单

cd path/to/files
python -m SimpleHTTPServer

然后将浏览器指向

http://localhost:8000

如果您发现它太慢,请考虑此解决方案

你连文章都看了吗?至少其中一种攻击是可能的--allow-file-access-from-files当零风险方式如此简单时,为什么还要冒险呢?
2021-03-24 08:44:23
这些攻击是针对的--disable-web-security,不是针对的--allow-file-access-from-files所以它们不会起作用——只是为了让人们知道。有风险,但远没有那么大。
2021-03-29 08:44:23
2021-04-04 08:44:23
@JoeRocc,感谢您的反对,并感谢您帮助人们解除机器安全。你是一个真正的英雄
2021-04-06 08:44:23
与此的所有其他变体一样,这不是正确答案,甚至不是问题。你的建议实际上是错误的。使用该选项启动不会让您的机器受到攻击。它以一种受控的方式'禁用了过于广泛的安全限制的近视/懒惰实施。本地 HTML 或 SVG 文件应该绝对可以访问 file: 协议内容,例如它自己的 .css 文件。
2021-04-08 08:44:23