Wie starte ich HTML mit Chrome im Modus "--allow-file-access-from-files"?


124

Ich habe die gleiche Situation mit HIER

Und um dieses Problem zu lösen, muss ich eine HTML-Datei mit Chrome im Modus "--allow-file-access-from-files" starten. Ich habe die nächsten Schritte viele Male versucht, aber es funktioniert nicht.

  1. Starten Sie cmd unter Windows 7
  2. direkt zum Ordner chrome.exe
  3. mach das chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Sie können dafür auch ein Chrome-Plugin verwenden. Ich finde es am praktischsten. Dies ist nur ein Beispiel: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus

5
@RobertParcus Dieses Plugin scheint nicht zu funktionieren, wenn Sie das fileProtokoll verwenden.
Andrew Thaddeus Martin

Antworten:


81

Suchen Sie nach dem Pfad Ihrer ausführbaren Chrome-Datei und versuchen Sie dann auf Ihrem cmd:

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

Quelle

BEARBEITEN: Wie ich auf Ihrer Frage sehe, vergessen Sie nicht, dass Windows Unix ein wenig ähnlich ist. Wenn Sie also "chrome ..." eingeben, sucht cmd im PATH nach Chrome, aber im Allgemeinen ist der Chrome-Ordner nicht Nicht auf dem Weg. Außerdem geben Sie keine Erweiterung für Ihre ausführbare Datei an. Wenn Sie also in den Ordner von Chrome wechseln, funktioniert dieser Befehl wahrscheinlich auch:

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

2
Ich habe meinen Computer neu gestartet und mache dasselbe wie du sagst, und es scheint in Ordnung zu sein. Danke dir.
AmyWuGo

2
Gemäß dem Kommentar von Philippe müssen Sie alle Chrome-Prozesse beenden und mit der Befehlszeilenoption neu starten. (Windows 7)
yoyo

2
Wenn es nach dem Neustart von Chrome nicht funktioniert, überprüfen Sie die laufenden Hintergrundprozesse (Chrome-Symbol neben den Uhren). Möglicherweise ist die Option "Google Chrome im Hintergrund laufen lassen" aktiviert.
Alex Klaus

1
@Abdul Ja, genau, es sei denn, Sie erstellen eine Verknüpfung mit dem Flag und starten Chrome von dort aus.
Mohamed Amine

3
Star Chrome von Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG

114

Diese Flagge ist gefährlich !! Lässt Ihr Dateisystem für den Zugriff geöffnet. Dokumente, die von irgendwoher stammen, lokal oder über das Internet, sollten standardmäßig keinen Zugriff auf lokale Datei: /// Ressourcen haben.

Eine viel bessere Lösung besteht darin, einen kleinen http-Server lokal auszuführen.

--- Für Windows ---

Am einfachsten ist es, den http-Server global mit dem Paketmanager des Knotens zu installieren:

npm install -g http-server

Führen Sie dann einfach http-servereines Ihrer Projektverzeichnisse aus:

Z.B. 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

Oder wie von prusswan vorgeschlagen, können Sie Python auch unter Windows installieren und die folgenden Anweisungen befolgen.

--- Für Linux ---

Da Python normalerweise in den meisten Linux-Distributionen verfügbar ist, führen Sie es einfach aus python -m SimpleHTTPServer in Ihrem Projektverzeichnis aus, und Sie können Ihre Seite ladenhttp://localhost:8000

In Python 3 wurde das SimpleHTTPServerModul zusammengeführthttp.server , daher lautet der neue Befehl python3 -m http.server.

Einfach und ohne Sicherheitsrisiko, wenn Ihr Browser versehentlich geöffnet bleibt.


9
Dies sollte die akzeptierte Antwort sein! Ich bin hierher gekommen, um nach der richtigen Möglichkeit zu suchen, die --allow-file-access-to-filesBefehlszeilenoption mit Chrome (und Opera) zu verwenden. Ihre Antwort lässt mich wissen, dass meine Frage aus einem wichtigen Grund falsch ist. Darüber hinaus haben Sie Ihre Lösung in einer übersichtlichen und leicht verständlichen Weise geschrieben. Vielen Dank, eine Milliarde! Ich würde auch vorschlagen, @orszaczky, dass Sie im Wesentlichen dieselbe Antwort für die SO-Frage schreiben, die in dieser ursprünglichen Frage verknüpft war, dh in dieser anderen Frage . Ich könnte es schreiben, aber Sie verdienen die Anerkennung.
Andrew Willems

24
Dies mag zwar ein großartiger Vorschlag sein, ist aber tatsächlich keine Antwort auf die Frage. Die Frage war nicht "Was ist der beste Weg, um auf lokale Dateien in Chrome zuzugreifen?", Sondern "Wie starte ich mit diesem Flag?". Wenn Sie sich der Risiken bewusst sind und nichts öffnen, was Sie nicht erstellt haben, oder wenn Sie nicht einmal online sind, ist das vollkommen in Ordnung. Es gibt Gründe, warum dies nützlich ist. Ich würde annehmen, dass Google es zu einer Option gemacht hat.
TinMonkey

2
Es ist lustig, dass Sie Leuten empfehlen würden, Node anstelle von Python unter Windows zu installieren, nur um diesen einfachen Server zu hosten. Als ob die Python-Option für Windows ungeeignet wäre (was es nicht ist). Wenn Sie nur einen Hammer haben, sieht alles aus wie ein Nagel?
Prusswan

15
Diese Antwort verbreitet nur Angst. Die --allow-file-access-from-filesOption ermöglicht einem file://Webseitenzugriff auf andere file://Ressourcen, das ist alles. Ihr Dateisystem bleibt nicht geöffnet.
GetFree

3
Es ist nicht die Antwort auf die Frage. Einige Leute brauchen dies möglicherweise wirklich, z. B. verwende ich eine spezielle Webkit-App-Bibliothek Coherent UIGT. Beim Testen benötige ich lokalen Dateizugriff. Übrigens unterstützt Firefox file: // Laden einer anderen lokalen Datei.
Eric

29

Möglicherweise möchten Sie Web Server for Chrome ausprobieren , das Webseiten aus einem lokalen Ordner über HTTP bereitstellt. Es ist einfach zu bedienen und würde das Flag vermeiden, was, wie oben erwähnt, Ihr Dateisystem anfällig machen könnte.

Screenshot von Web Server für Chrome


3
Brillant. Dies ist die benutzerfreundliche Lösung, nach der ich gesucht habe, danke.
Jay-Gefahr

1
das ist großartig. Genau das, was Sie für dieses Problem brauchen.
A. Denis

21

Zum jetzigen Zeitpunkt sieht es in OS X normalerweise so aus

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

Wenn Sie ein Freak wie ich sind und Ihre Apps einbinden ~/Applications, wird es so sein

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

Wenn keines davon funktioniert, geben Sie chrome://versionIhre Chrome-Adressleiste ein und Sie erfahren, welchen Befehlszeilenaufruf Sie verwenden sollten. Fügen Sie einfach hinzu --allow-file-access-from-files.


"chrome: // version in Ihrer Chrome-Adressleiste, und es wird Ihnen sagen, welchen" Befehlszeilen "-Aufruf Sie verwenden sollten" That the point
JCH77

15

Tu das nicht! Sie öffnen Ihre Maschine für Angriffe . Führen Sie stattdessen einen lokalen Server aus. Es ist so einfach wie das Öffnen einer Shell / eines Terminals / einer Befehlszeile und das Tippen

cd path/to/files
python -m SimpleHTTPServer

Zeigen Sie dann mit Ihrem Browser auf

http://localhost:8000

Wenn Sie feststellen, dass es zu langsam ist, ziehen Sie diese Lösung in Betracht



1
Diese Angriffe sind für --disable-web-security, nicht --allow-file-access-from-files, also werden sie nicht funktionieren - nur damit die Leute es wissen. Es besteht ein Risiko, aber es ist nicht annähernd so groß.

Hast du den Artikel überhaupt gelesen? Mindestens einer der Angriffe ist mit genau --allow-file-access-from-filesdem möglich. Warum überhaupt das Risiko eingehen, wenn der Weg ohne Risiko so einfach ist?
Gman

@ JoeRocc, danke für die Ablehnung und danke, dass du den Leuten geholfen hast, ihre Maschinen zu sichern. Du bist ein echter Held
gman

1
Dies ist, wie alle anderen Variationen davon, weder die richtige Antwort noch das Problem. Es ist sachlich falsch, was Sie vorschlagen. Wenn Sie mit dieser Option starten, wird Ihr Computer nicht für Angriffe geöffnet. Auf kontrollierte Weise wird die kurzsichtige / verzögerte Implementierung einer zu breiten Sicherheitsklemme deaktiviert. Eine lokale HTML- oder SVG-Datei sollte unbedingt Zugriff auf Datei: Protokollinhalte haben, z. B. eine eigene CSS-Datei.
Minok

6

Wenn Sie einen Mac verwenden, können Sie den folgenden Terminalbefehl verwenden:

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

1

Beenden Sie alle Instanzen von Chrome (erzwingen Sie das Beenden). Andernfalls funktioniert der folgende Befehl nicht.

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

Durch Ausführen dieses Befehls im Terminal wird Chrome geöffnet, unabhängig davon, wo es installiert ist.


1
"Alle Instanzen beenden" - Dies gilt meiner Erfahrung nach (unter Linux). Dies ist anscheinend ein gemeinsam genutzter Status, der nur bei einem Neustart festgelegt werden kann.
Brent Bradburn

0

Unter Windows:

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

Unter Linux:

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

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

Speichern Sie die obigen Zeilen als .bat- Datei


taskkill / F / IM chrome.exe / T Nützlich, um meinen Computer nicht neu zu
starten

0

Abhängig von der Datei, die in das Dateisystem gestellt wird, ist dies sicher, solange diese Datei keine Malware ist.

Machen Sie sich jedoch keine Sorgen, Dateien in das Dateisystemverzeichnis zu schreiben / lesen, da Sie die Verzeichnissicherheit (einschließlich der Vererbung) durch ein ordnungsgemäßes Zugriffsrecht und eine Sicherheitsbeschränkung verschärfen können. zB: lesen / schreiben / modifizieren.

Standardmäßig befinden sich Dateisystem, lokaler Speicher und Speicherverzeichnis im Verzeichnis "\ Benutzer [Aktueller Benutzer] \ AppData \ Local \ Google \ Chrome \ Benutzerdaten \ Standard".

Sie können es jedoch mithilfe des Flags "--user-data-dir" anpassen.

Und das ist ein Beispiel:

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

Hoffe das hilft jedem.


0

Nun, es gibt schnell ein HTML auszuführen, das eine Erlaubnis benötigt oder von CORS blockiert wird. Öffnen Sie einfach den Ordner mit VSCODE und installieren Sie eine Erweiterung namens "Live Server".

Und dann klicken Sie einfach auf die Unterseite, auf der steht, dass Sie live gehen können. Bildschirmfoto

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.