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

Amy*_*uGo 116 html javascript google-chrome

我和HERE的情况相同

要解决这个问题,我必须在"--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

ors*_*zky 103

那面旗子很危险!! 使文件系统保持打开状态以便访问.默认情况下,源自任何地方,本地或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
Run Code Online (Sandbox Code Playgroud)

或者如prusswan建议的那样,您也可以在Windows下安装Python,并按照以下说明操作.

---对于Linux ---

由于Python通常在大多数Linux发行版中都可用,因此只需python -m SimpleHTTPServer在项目目录中运行,然后就可以加载页面了http://localhost:8000

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

简单,没有安全风险,意外地让您的浏览器易受攻击.

  • 这可能确实是一个很好的建议,但实际上并不是这个问题的答案.问题不是"在chrome中访问本地文件的最佳方式是什么",具体是"如何使用此标志启动".如果您意识到风险并且没有打开任何您没有创建的东西,或者您甚至不在线......那就完全没问题了.有理由说明这是有用的..我认为这是谷歌选择它的原因. (21认同)
  • 这个答案只是在传播恐惧.`--allow-file-access-from-files`选项允许`file://`网页访问其他`file://`资源,这就是全部.它不会让您的文件系统保持打开状态. (9认同)
  • 这应该是公认的答案!我来到这里寻找使用Chrome(和Opera)的`--allow-file-access-to-files`命令行选项的正确方法.你的回答让我知道我的问题是错的,原因很重要.最重要的是,您已经以简洁易懂的方式编写了解决方案.谢谢十亿!我还建议@orszaczky,你为这个原始问题中链接的SO问题编写了基本相同的答案,即[另一个问题](http://stackoverflow.com/q/16487803/5218951).我可以写它,但你值得信任. (8认同)
  • 有趣的是,你会建议人们在 Windows 上安装 node 而不是 python,只是为了托管这个简单的服务器。好像 python 选项不适合 Windows (它不是)。**当你只有一把锤子时,一切看起来都像钉子?** (2认同)
  • 这不是问题的答案.有些人可能真的需要这个,例如我正在使用一个特殊的webkit应用程序库Coherent UIGT.当我测试时,我需要本地文件访问.BTW,Firefox支持file://加载另一个本地文件. (2认同)

Moh*_*ine 81

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

> "C:\PathTo\Chrome.exe" --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

资源

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

> .\chrome.exe --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

  • 重新启动Chrome.exe的所有实例以使其正常工作. (25认同)
  • 来自Windows PowerShell的Star Chrome:`Start-Process"chrome.exe"" - allow-file-access-from-files"` (3认同)
  • 我重新启动计算机并按照你的说法做同样的事情,看起来很好.谢谢. (2认同)
  • 根据Philippe的评论,您需要退出所有chrome进程并使用命令行选项重新启动.(Windows 7的) (2认同)
  • 如果在重新启动Chrome后它无法正常工作,请检查正在运行的后台进程(时钟附近的镶边图标).您可能已将"让Google Chrome在后台运行"选项为"开启". (2认同)

Gai*_*loe 27

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

Web Server for Chrome的屏幕截图

  • 辉煌。这是我一直在寻找的用户友好型解决方案,谢谢。 (3认同)

Cla*_*ges 20

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

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

如果你是一个像我一样的怪人,并把你的应用程序~/Applications,所以它将是

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

如果这些都不起作用,请输入chrome://version您的Chrome地址栏,它会告诉您应该使用的"命令行"调用.只需添加--allow-file-access-from-files即可.


gma*_*man 15

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

cd path/to/files
python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

然后将浏览器指向

http://localhost:8000
Run Code Online (Sandbox Code Playgroud)

如果你发现它太慢,请考虑这个解决方案

  • 与所有其他变体一样,这不是正确的答案,甚至也不是问题。您的建议实际上是错误的。使用该选项启动不会让您的计算机遭受攻击。它以一种受控的方式禁用过于宽泛的安全限制的短视/懒惰实施。本地 HTML 或 SVG 文件绝对应该有权访问 file: 协议内容,例如其自己的 .css 文件。 (3认同)

taz*_*taz 6

如果您使用的是mac,则可以使用以下终端命令:

open -a Google\ Chrome --args --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)


Mat*_*jda 5

退出(强制退出)chrome 的所有实例。否则下面的命令将不起作用。

open -a "Google Chrome" --args --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

在终端中执行此命令将打开 Chrome,无论它安装在哪里。

  • “退出所有实例”——根据我的经验(在 Linux 上),这是正确的。这显然是一个共享状态,只能在新启动时设置。 (4认同)