"--Allow-file-access-from-files" modunda Chrome kullanılarak html nasıl başlatılır?


124

BURAYA ile aynı duruma sahibim

Ve bu sorunu çözmek için, html dosyasını Chrome'u kullanarak "--allow-file-access-from-files" modunda başlatmam gerekiyor. Sonraki adımları birçok kez denedim ama işe yaramıyor.

  1. Windows 7 altında cmd'yi başlat
  2. doğrudan chrome.exe klasörüne
  3. Bunu yap chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Bunun için bir krom eklentisi de kullanabilirsiniz. En pratik yolu buluyorum. Bu sadece bir örnek: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus

5
@RobertParcus Protokolü kullanıyorsanız bu eklenti çalışmıyor gibi görünüyor file.
Andrew Thaddeus Martin

Yanıtlar:


81

Chrome yürütülebilir dosyanızın yolunu arayın ve ardından cmd'nizde şunu deneyin:

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

Kaynak

DÜZENLEME: Sorunuzda gördüğüm gibi, Windows'un Unix'e biraz benzediğini unutmayın, bu nedenle "chrome ..." yazdığınızda, cmd PATH'de Chrome'u arayacaktır, ancak genel olarak Chrome klasörü PATH üzerinde. Ayrıca, çalıştırılabilir dosyanız için bir uzantı belirtmezsiniz ... Yani Chrome klasörüne giderseniz, bu komut da muhtemelen çalışacaktır:

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

2
Bilgisayarımı yeniden başlattım ve söylediğiniz gibi yaptım ve iyi görünüyor. Teşekkür ederim.
AmyWuGo

2
Philippe'in yorumuna göre, tüm krom işlemlerinden çıkmanız ve komut satırı seçeneğiyle yeniden başlatmanız gerekir. (Windows 7)
yoyo

2
Chrome'u yeniden başlattıktan sonra çalışmıyorsa, arka planda çalışan işlemleri kontrol edin (saatlerin yanındaki krom simgesi). "Google Chrome'un arka planda çalışmasına izin ver" seçeneğiniz AÇIK olabilir.
Alex Klaus

1
@Abdul Evet, bayrakla bir kısayol oluşturup Chrome'u buradan başlatmadığınız sürece kesinlikle.
Mohamed Amine

3
Windows PowerShell'den Yıldız Chrome:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG

114

Bu bayrak tehlikelidir !! Dosya sisteminizi erişim için açık bırakır. Herhangi bir yerden, yerel veya web'den gelen belgeler, varsayılan olarak yerel file: /// kaynaklarına erişime sahip olmamalıdır.

Çok daha iyi bir çözüm yerel olarak küçük bir http sunucusu çalıştırmaktır.

--- Pencereler için ---

En kolayı, düğümün paket yöneticisini kullanarak http sunucusunu global olarak kurmaktır:

npm install -g http-server

Ardından http-serverproje dizinlerinizden herhangi birinde çalıştırın :

Örneğin. 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

Veya prusswan'ın önerdiği gibi, Python'u Windows altına da yükleyebilir ve aşağıdaki talimatları uygulayabilirsiniz.

--- Linux için ---

Python genellikle çoğu linux dağıtımında mevcut olduğundan, sadece python -m SimpleHTTPServerproje dizininizde çalıştırın ve sayfanızı şuraya yükleyebilirsiniz:http://localhost:8000

Python 3'te SimpleHTTPServermodül birleştirildi http.server, bu nedenle yeni komut python3 -m http.server.

Kolaydır ve tarayıcınızı yanlışlıkla savunmasız bırakma gibi bir güvenlik riski yoktur.


9
Kabul edilen cevap BU olmalıdır! Buraya --allow-file-access-to-filesChrome (ve Opera) ile komut satırı seçeneğini kullanmanın doğru yolunu aramaya geldim . Cevabınız, sorumun önemli bir nedenle yanlış olduğunu bilmemi sağlıyor. Hepsinden öte, çözümünüzü kısa ve takibi kolay bir şekilde yazdınız. Bir milyar teşekkürler! Ayrıca @orszaczky, bu orijinal soruda, yani bu diğer soruda bağlantılı olan SO sorusu için temelde aynı cevabı yazmanızı öneririm . Yazabilirim ama övgüyü hak ediyorsun.
Andrew Willems

24
Bu gerçekten harika bir öneri olabilir, ancak aslında sorunun cevabı değildir. Soru "Chrome'da yerel dosyalara erişmenin en iyi yolu nedir" değil, özellikle "bu bayrakla nasıl başlatırım" idi. Risklerin farkındaysanız ve oluşturmadığınız hiçbir şeyi açmazsanız veya hatta çevrimiçi değilseniz .. tamamen sorun değil. Bunun yararlı olmasının nedenleri var .. Google'ın bunu bir seçenek haline getirmesinin nedeni olduğunu varsayacağım.
TinMonkey

2
Sadece bu basit sunucuyu barındırmak için insanlara Windows'a python yerine node yüklemelerini önermeniz komik. Sanki python seçeneği Windows için uygun olmayacakmış gibi (ki öyle değildir). Sahip olduğun tek şey bir çekiç olduğunda, her şey çivi gibi mi görünüyor?
prusswan

16
Bu cevap sadece korku yayıyor. --allow-file-access-from-filesSeçeneği verir file://, diğer web sayfası erişimi file://, hepsi bu kaynakların. Dosya sisteminizi açık bırakmaz.
GetFree

3
Sorunun cevabı bu değil. Bazı insanlar buna gerçekten ihtiyaç duyabilir, örneğin ben özel bir webkit uygulama kitaplığı Coherent UIGT kullanıyorum. Test ederken, yerel dosya erişimine ihtiyacım var. BTW, Firefox file: // başka bir yerel dosyanın yüklenmesini destekler.
Eric

29

HTTP kullanarak yerel bir klasörden web sayfaları sunan Chrome için Web Sunucusunu denemek isteyebilirsiniz . Kullanımı basittir ve yukarıda da belirtildiği gibi dosya sisteminizi savunmasız hale getirebilecek olan bayraktan kaçınır.

Chrome için Web Sunucusunun Ekran Görüntüsü


3
Parlak. Bu, aradığım kullanıcı dostu çözüm, teşekkürler.
jay-danger

1
bu harika. Bu problem için tam olarak ne gerekiyor.
A. Denis

21

Bu yazı itibariyle, OS X'te, genellikle şöyle görünecektir

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

Benim gibi bir ucubeyseniz ve uygulamalarınızı koyarsanız ~/Applications, o zaman

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

Bunların hiçbiri çalışmıyorsa, chrome://versionChrome adres çubuğunuzu yazın ve size hangi "komut satırı" çağrısını kullanmanız gerektiğini söyleyecektir. Sadece buna ekleyin --allow-file-access-from-files.


Chrome adres çubuğunuzdaki "chrome: // sürümü ve size hangi" komut satırı "çağrısını kullanmanız gerektiğini söyleyecektir" Bu nokta
JCH77

15

Bunu yapma! Makinenizi saldırılara açıyorsunuz . Bunun yerine yerel bir sunucu çalıştırın. Bir kabuk / terminal / komut satırı açmak ve yazmak kadar kolay

cd path/to/files
python -m SimpleHTTPServer

Ardından tarayıcınızı işaretleyin

http://localhost:8000

Çok yavaş olduğunu düşünüyorsanız, bu çözümü düşünün



1
Bunlar saldırılar içindir --disable-web-securitydeğil, --allow-file-access-from-filesbu yüzden iş olmaz, - insanlar bil ki. Bir risk var, ancak bu boyuta yakın bir yer yok.

Makaleyi bile okudun mu? Saldırılardan en az biri sadece --allow-file-access-from-fileshangisi ile mümkündür . Sıfır risk yolu bu kadar basitken neden risk alasınız?
gman

@JoeRocc, olumsuz oyunuz için teşekkürler ve insanların makinelerinin güvenliğini sağlamalarına yardımcı olduğunuz için teşekkür ederiz. Sen gerçek bir kahramansın
gman

1
Bu, bunun diğer tüm varyasyonları gibi, doğru cevap veya sorun bile değildir. Önerdiğiniz şey aslında yanlış. Bu seçenekle başlatmak, makinenizi saldırılara açmaz. Kontrollü bir şekilde 'çok geniş bir güvenlik kıskacının miyop / tembel uygulamasını devre dışı bırakır. Yerel bir HTML veya SVG dosyası, kendi .css dosyası gibi file: protokol içeriğine kesinlikle erişebilmelidir.
Minok

6

Mac kullanıyorsanız, aşağıdaki terminal komutunu kullanabilirsiniz:

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

1

Tüm Chrome örneklerinden çıkın (çıkmaya zorlayın). Aksi takdirde aşağıdaki komut çalışmayacaktır.

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

Bu komutun terminalde çalıştırılması, yüklü olduğu yere bakılmaksızın Chrome'u açacaktır.


1
"Tüm örneklerden çıkın" - Bu benim deneyimime göre doğrudur (Linux'ta). Görünüşe göre bu, yalnızca yeni bir lansmanda ayarlanabilen paylaşılan bir durum.
Brent Bradburn

0

Windows'ta:

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

Linux'ta:

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

yukarıdaki satırları .bat dosyası olarak kaydet


taskkill / F / IM chrome.exe / T Bilgisayarımı yeniden başlatmamak için
kullanışlıdır

0

Dosya sistemine yerleştirilecek dosyaya bağlı olarak, bu dosya kötü amaçlı yazılım olmadığı sürece güvenli olacaktır.

Ancak dosya (lar) ı Dosya Sistemi dizinine yazma / okuma konusunda endişelenmeyin, çünkü uygun bir erişim hakkı ve güvenlik kısıtlaması vererek bu dizin güvenliğini (mirasını da dahil ederek) sıkılaştırabilirsiniz. örneğin: oku / yaz / değiştir.

Varsayılan olarak, Dosya Sistemi, Yerel Depolama ve Depolama dizini "\ Kullanıcılar [Geçerli Kullanıcı] \ AppData \ Local \ Google \ Chrome \ Kullanıcı Verileri \ Varsayılan" dizininde bulunur.

Ancak "--user-data-dir" bayrağını kullanarak bunu özelleştirebilirsiniz.

Ve bu bir örnek:

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

Umarım bu herkese yardımcı olur.


0

Eh, izin gerektiren veya CORS tarafından engellenen bir html'yi çalıştırmak hızlı bir şekilde var Sadece VSCODE kullanarak klasörü açın ve "canlı sunucu" adlı bir uzantı yükleyin

Ve sonra sadece canlı yayına geç diyen alt kısma tıklayın, işte bu. Ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.