135

我和这里有同样的情况

为了解决这个问题,我必须在“--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
4

11 回答 11

130

那面旗帜很危险!!使您的文件系统保持打开状态以供访问。默认情况下,来自任何地方(本地或 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 中,该SimpleHTTPServer模块已合并到http.server中,因此新命令为python3 -m http.server.

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

于 2015-11-19T10:29:20.730 回答
88

搜索您的 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
于 2013-09-03T08:00:00.957 回答
37

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

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

于 2017-11-16T01:29:32.107 回答
21

在撰写本文时,在 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即可。

于 2014-08-22T23:17:26.370 回答
15

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

cd path/to/files
python -m SimpleHTTPServer

然后将浏览器指向

http://localhost:8000

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

于 2014-02-03T03:37:14.210 回答
6

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

open -a Google\ Chrome --args --allow-file-access-from-files
于 2016-05-15T17:00:21.107 回答
1
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文件

于 2019-09-18T20:49:35.500 回答
1

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

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

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

于 2017-10-30T19:16:13.397 回答
1

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

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

默认情况下,文件系统、本地存储和存储目录位于“\Users[Current User]\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

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

于 2020-03-21T23:15:49.927 回答
1

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

然后只需点击底部的“上线”,就是这样。 截屏

于 2020-05-31T14:11:56.230 回答
0

在窗户上:

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
于 2019-01-20T06:05:49.840 回答