Como iniciar o html usando o Chrome no modo "- Permitir acesso a arquivos a partir de arquivos"?

124

Eu tenho a mesma situação com AQUI

E para resolver esse problema, tenho que iniciar o arquivo html usando o Chrome no modo "- Permitir acesso a arquivos a partir de arquivos". Eu tentei os próximos passos várias vezes, mas não funciona.

  1. iniciar cmd no windows 7
  2. direto para a pasta chrome.exe
  3. faça isso chrome --allow-file-access-from-files file:///C:/test%20-%203.html
AmyWuGo
fonte
1
Você também pode usar um plugin do Chrome para isso. Acho a maneira mais prática. Este é apenas um exemplo: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus
5
@RobertParcus Esse plug-in não parece funcionar se você estiver usando o fileprotocolo.
Andrew Thaddeus Martin

Respostas:

81

Pesquise o caminho do executável do Chrome e, em seu cmd, tente:

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

Fonte

EDIT: Como vejo na sua pergunta, não esqueça que o Windows é um pouco semelhante ao Unix; portanto, quando você digita "chrome ...", o cmd pesquisará o Chrome no PATH, mas em geral a pasta Chrome não é está no CAMINHO. Além disso, você não especifica uma extensão para o seu executável ... Portanto, se você for para a pasta do Chrome, esse comando provavelmente também funcionará:

> .\chrome.exe --allow-file-access-from-files
Mohamed Amine
fonte
2
Reiniciei o computador e faço o mesmo que você diz, e parece bom. Obrigado.
AmyWuGo
2
De acordo com o comentário de Philippe, você precisa sair de todos os processos do Chrome e reiniciar com a opção de linha de comando. (Windows 7)
yoyo 16/10
2
Se não funcionar depois de reiniciar o Chrome, verifique os processos em segundo plano em execução (ícone do Chrome próximo aos relógios). Você pode ter a opção "Deixe o Google Chrome funcionar em segundo plano".
Alex Klaus
1
@ Abdul Sim, exatamente, a menos que você crie um atalho com a bandeira e inicie o Chrome a partir dela.
Mohamed Amine
3
Star Chrome do Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG
114

Essa bandeira é perigosa !! Deixa seu sistema de arquivos aberto para acesso. Os documentos originários de qualquer lugar, local ou web, por padrão, não devem ter acesso ao arquivo local: /// resources.

Uma solução muito melhor é executar um pequeno servidor http localmente.

--- Para Windows ---

O mais fácil é instalar o servidor http globalmente usando o gerenciador de pacotes do nó:

npm install -g http-server

Em seguida, basta executar http-serverem qualquer um dos diretórios do seu projeto:

Por exemplo. 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

Ou, como sugerido por prusswan, você também pode instalar o Python no Windows e seguir as instruções abaixo.

--- Para Linux ---

Como o Python geralmente está disponível na maioria das distribuições Linux, basta executar python -m SimpleHTTPServerno diretório do projeto e você pode carregar sua página nohttp://localhost:8000

No Python 3, o SimpleHTTPServermódulo foi mesclado http.server, então o novo comando é python3 -m http.server.

Fácil e sem risco de segurança de deixar acidentalmente seu navegador aberto vulnerável.

orszaczky
fonte
9
ESTA deve ser a resposta aceita! Eu vim aqui procurando o caminho certo para usar a --allow-file-access-to-filesopção de linha de comando com o Chrome (e Opera). Sua resposta me permite saber que minha pergunta está errada, por um motivo importante. Além disso, você escreveu sua solução de maneira concisa e fácil de seguir. Graças um bilhão! Eu também sugiro, @orszaczky, que você escreva essencialmente a mesma resposta para a pergunta SO que estava vinculada nesta pergunta original, ou seja, nesta outra pergunta . Eu poderia escrever, mas você merece o crédito.
Andrew Willems
24
Isso pode realmente ser uma ótima sugestão, mas na verdade não é uma resposta para a pergunta. A questão não era "qual é a melhor maneira de acessar arquivos locais no chrome", mas especificamente "como inicio com esse sinalizador". Se você está ciente dos riscos e não abre nada que não criou, ou se não está online, tudo bem. Existem razões pelas quais isso é útil .. o que eu diria que é a razão pela qual o Google fez disso uma opção.
TinMonkey
2
É engraçado que você recomende às pessoas que instalem o nó em vez do python no Windows, apenas para hospedar este servidor simples. Como se a opção python fosse inadequada para o Windows (o que não é). Quando tudo que você tem é um martelo, tudo parece um prego?
prusswan
15
Esta resposta está apenas espalhando medo. A --allow-file-access-from-filesopção permite que uma file://página da Web acesse outros file://recursos, só isso. Não deixa seu sistema de arquivos aberto.
GetFree
3
Não é a resposta para a pergunta. Algumas pessoas podem realmente precisar disso, por exemplo, estou usando uma biblioteca de aplicativos webkit Coherent UIGT especial. Quando estou testando, preciso de acesso local a arquivos. BTW, o Firefox suporta file: // carregando outro arquivo local.
Eric
29

Você pode tentar o Web Server para Chrome , que serve páginas da Web de uma pasta local usando HTTP. É simples de usar e evitaria a sinalização, que, como alguém mencionado acima, pode tornar seu sistema de arquivos vulnerável.

Captura de tela do servidor Web para Chrome

Gail Parsloe
fonte
3
Brilhante. Esta é a solução amigável que eu estava procurando, obrigado.
Jay-danger #
1
isso é ótimo. Exatamente o que é necessário para esse problema.
A. Denis
21

No momento da redação deste artigo, no OS X, ele geralmente se parece com isso

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

Se você é uma aberração como eu e coloca seus aplicativos ~/Applications, será

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

Se nenhum deles estiver funcionando, digite chrome://versionsua barra de endereços do Chrome e ele informará qual chamada de "linha de comando" você deve usar. Basta adicionar --allow-file-access-from-filesa isso.

Pontes de argila
fonte
"chrome: // version na barra de endereço do Chrome e ele informa qual chamada de" linha de comando "você deve usar" That the point
JCH77
15

Não faça isso! Você está abrindo sua máquina para ataques . Em vez disso, execute um servidor local. É tão fácil quanto abrir um shell / terminal / linha de comando e digitar

cd path/to/files
python -m SimpleHTTPServer

Em seguida, aponte seu navegador para

http://localhost:8000

Se você achar que é muito lento, considere esta solução

gman
fonte
+1 no link para stackoverflow.com/questions/12905426/…
ESRogs 15/18
1
Esses ataques são para --disable-web-security, não --allow-file-access-from-files, para que não funcionem - apenas para que as pessoas saibam. Existe um risco, mas não é nem perto desse tamanho.
Você pelo menos leu o artigo? Pelo menos um dos ataques é possível com apenas --allow-file-access-from-filesqual. Por que correr o risco quando o risco zero é tão simples?
gman
@JoeRocc, obrigado pelo voto negativo e obrigado por ajudar as pessoas a proteger suas máquinas. Você é um verdadeiro herói
gman
1
Esta, como todas as outras variações, não é a resposta correta, nem mesmo o problema. É factualmente errado o que você está sugerindo. O lançamento com essa opção não abre sua máquina para ataques. De maneira controlada, desativa a implementação míope / preguiçosa de um grampo de segurança muito amplo. Um arquivo local em HTML ou SVG deve ter absolutamente acesso ao conteúdo file: protocol, como seu próprio arquivo .css.
Minok 22/01
6

Se você estiver usando um mac, poderá usar o seguinte comando do terminal:

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

Saia (force quit) de todas as instâncias do chrome. Caso contrário, o comando abaixo não funcionará.

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

A execução deste comando no terminal abrirá o Chrome, independentemente de onde ele estiver instalado.

Matt Perejda
fonte
1
"Sair de todas as instâncias" - isso é verdade na minha experiência (no Linux). Aparentemente, esse é um estado compartilhado que só pode ser definido em um novo lançamento.
Brent Bradburn
0

No Windows:

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

No linux:

google-chrome --allow-file-access-from-files file:///C:/test%20-%203.html
Bonn
fonte
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

salve as linhas acima como arquivo .bat

Yogesh Jog
fonte
taskkill / F / IM chrome.exe / T Útil para não reiniciar o meu computador
JCH77 21/03
0

Dependendo do arquivo que será colocado no sistema de arquivos, desde que esse arquivo não seja um malware, isso seria seguro.

Mas não se preocupe em gravar / ler arquivos no diretório do sistema de arquivos, pois você pode aumentar a segurança do diretório (incluindo sua herança) fornecendo um direito de acesso adequado e restrições de segurança. por exemplo: leitura / gravação / modificação.

Por padrão, os diretórios Sistema de Arquivos, Armazenamento Local e Armazenamento estão localizados no diretório "\ Usuários [Usuário Atual] \ AppData \ Local \ Google \ Chrome \ Dados do Usuário \ Padrão".

No entanto, você pode personalizá-lo usando o sinalizador "--user-data-dir".

E esta é uma amostra:

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

Espero que isso ajude alguém.

jo0gbe4bstjb
fonte
0

Bem, é rápido executar um html que precise de permissão ou seja bloqueado pelo CORS Simplesmente abra a pasta usando o VSCODE e instale uma extensão chamada "servidor ativo"

E então basta clicar na parte inferior que diz ir ao vivo, é isso. Captura de tela

Prosenjeet Paul
fonte