Как запустить HTML, используя Chrome в режиме --allow-file-access-from-files?
У меня такая же ситуация с ЗДЕСЬ
И чтобы решить эту проблему, я должен запустить HTML-файл с помощью Chrome в режиме "--allow-file-access-from-files". Я пробовал следующие шаги много раз, но это не работает.
- запустить cmd под windows 7
- прямо в папку chrome.exe
- сделай это
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. Он прост в использовании и позволит избежать флага, который, как кто-то упоминал выше, может сделать вашу файловую систему уязвимой.
На момент написания статьи в 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, запущенного на веб-сервере.