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

时间:2013-09-03 07:53:48

标签: javascript html 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

11 个答案:

答案 0 :(得分:99)

该标志很危险!! 让您的文件系统处于打开状态以便访问。来自任何地方,本地或网络的文档,默认情况下不应具有对本地file:/// resources的任何访问权限。

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

---适用于Windows ---

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

npm install -g http-server

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

EG。 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中,SimpleHTTPServer模块已合并到http.server,因此新命令为python3 -m http.server

简单,没有安全隐患使您的浏览器容易受到攻击。

答案 1 :(得分:76)

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

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

Source

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

> .\chrome.exe --allow-file-access-from-files

答案 2 :(得分:20)

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

Screenshot of Web Server for Chrome

答案 3 :(得分:19)

在撰写本文时,在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地址栏中输入chrome://version,它会告诉您应该使用的“命令行”调用。只需添加--allow-file-access-from-files即可。

答案 4 :(得分:14)

不要这样做! You're opening your machine to attacks。而是运行本地服务器。它就像打开shell /终端/命令行并输入

一样简单
cd path/to/files
python -m SimpleHTTPServer

然后将浏览器指向

http://localhost:8000

如果发现它太慢consider this solution

答案 5 :(得分:6)

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

open -a Google\ Chrome --args --allow-file-access-from-files

答案 6 :(得分:1)

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

open -a "Google Chrome" --args --allow-file-access-from-files

在终端中执行此命令将打开Chrome,无论其安装位置如何。

答案 7 :(得分:1)

那么可以快速运行一个需要许可或被CORS阻止的HTML 只需使用VSCODE打开文件夹并安装一个名为“实时服务器”的扩展程序

然后单击底部的“开始直播”,就这样。 Screenshot

答案 8 :(得分:0)

在Windows上:

chrome --allow-file-access-from-files file:///C:/test%20-%203.html

在linux上:

google-chrome --allow-file-access-from-files file:///C:/test%20-%203.html

答案 9 :(得分:0)

REM Kill all existing instance of chrome 
taskkill /F /IM chrome.exe /T
REM directory path where chrome.exe is located
set chromeLocation="C:\Program Files (x86)\Google\Chrome\Application"
cd %chromeLocation%
cd c:
start chrome.exe --allow-file-access-from-files

将以上行另存为 .bat 文件

答案 10 :(得分:0)

根据要放入文件系统中的文件,只要该文件不是恶意软件,那便是安全的。

但是请不要担心将文件写入/读取到文件系统目录,因为您可以通过赋予适当的访问权限和安全限制来加强该目录的安全性(包括其继承性)。例如:读/写/修改。

默认情况下,文件系统,本地存储和存储目录位于“ \ Users [当前用户] \ AppData \ Local \ Google \ Chrome \ User Data \ Default”目录中。

但是,您可以使用“ --user-data-dir”标志对其进行自定义。

这是一个示例:

"C:\Program Files (x86)\Google\Application\chrome.exe" --user-data-dir="C:\Chrome_Data\OO7" --allow-file-access-from-files

希望这对任何人都有帮助。