Как запустить HTML, используя Chrome в режиме --allow-file-access-from-files?

У меня такая же ситуация с ЗДЕСЬ

И чтобы решить эту проблему, я должен запустить HTML-файл с помощью Chrome в режиме "--allow-file-access-from-files". Я пробовал следующие шаги много раз, но это не работает.

  1. запустить cmd под windows 7
  2. прямо в папку chrome.exe
  3. сделай это chrome --allow-file-access-from-files file:///C:/test%20-%203.html

13 ответов

Решение

Найдите путь к исполняемому файлу Chrome, а затем на своем cmd попробуйте:

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

Источник

РЕДАКТИРОВАТЬ: Как я вижу по вашему вопросу, не забывайте, что Windows немного похожа на Unix, поэтому, когда вы вводите "chrome ...", cmd будет искать Chrome в PATH, но в общем случае папка Chrome не не на пути. Кроме того, вы не указываете расширение для своего исполняемого файла... Поэтому, если вы перейдете в папку Chrome, эта команда, вероятно, тоже будет работать:

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

Этот флаг опасен! Оставляет вашу файловую систему открытой для доступа. Документы, исходящие из любого места, локального или сетевого, по умолчанию не должны иметь доступа к локальным ресурсам file:///.

Гораздо лучшим решением является локальный запуск небольшого http-сервера.

--- для Windows ---

Самым простым является глобальная установка http-сервера с помощью менеджера пакетов узла:

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, вы также можете установить Python под Windows и следовать приведенным ниже инструкциям.

--- для Linux ---

Поскольку Python обычно доступен в большинстве дистрибутивов Linux, просто запустите python -m SimpleHTTPServer в каталоге вашего проекта, и вы можете загрузить свою страницу на http://localhost:8000

В Python 3 SimpleHTTPServer модуль был объединен в http.serverтак что новая команда python3 -m http.server,

Легко и без риска для безопасности случайно оставить ваш браузер открытым уязвимым.

Вы можете попробовать веб-сервер для Chrome, который обслуживает веб-страницы из локальной папки, используя HTTP. Он прост в использовании и позволит избежать флага, который, как кто-то упоминал выше, может сделать вашу файловую систему уязвимой.

Снимок экрана веб-сервера для Chrome

На момент написания статьи в 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 к этому.

Не делай этого! Вы открываете свою машину для атак. Вместо этого запустите локальный сервер. Это так же просто, как открыть оболочку / терминал / командную строку и набрать

cd path/to/files
python -m SimpleHTTPServer

Затем укажите ваш браузер на

http://localhost:8000

Если вы обнаружите, что это слишком медленно, рассмотрите это решение.

Если вы используете Mac, вы можете использовать следующую команду терминала:

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

Выйти (принудительно выйти) все экземпляры Chrome. В противном случае приведенная ниже команда не будет работать.

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

Выполнение этой команды в терминале откроет Chrome независимо от того, где он установлен.

В зависимости от файла, который будет помещен в файловую систему, если этот файл не является вредоносной программой, это будет безопасно.

Но не беспокойтесь о записи / чтении файла (ов) в каталог файловой системы, потому что вы можете усилить безопасность этого каталога (включая его наследование), предоставив надлежащие права доступа и ограничения безопасности. например: чтение / запись / изменение.

По умолчанию файловая система, локальное хранилище и каталог хранилища расположены в каталоге "\ 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

Надеюсь, это кому-нибудь поможет.

я использую

      google-chrome-beta --user-data-dir="/tmp/tmp-chrome-user-data-dir" --allow-file-access-from-files --disable-web-security file:///home/myuser/projects/myproject/myhtml.html 

отключитьhas been blocked by CORS policyкогда я пытаюсьrequest('file://xxx')

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

Хорошо, есть быстрый запуск html, который требует разрешения или заблокирован CORS. Просто откройте папку с помощью VSCODE и установите расширение под названием "live server".

А затем просто нажмите на нижнюю часть, которая гласит, запусти, вот и все. Скриншот

На окнах:

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

Я попытался использовать разрешение доступа к файлам, но подумал, что есть лучший способ. Найден код, который передает файлы локальной папки через http.

https://gist.github.com/andrii-riabchun/07f854939ce776f6e54ba6b64f43cc92

Я добавил несколько предложений по редактированию. Я использовал код редакции вместе с моими предложениями по редактированию. Также добавлен простой скрипт для создания index.html из ls, запущенного на веб-сервере.

Другие вопросы по тегам