Javascript список файлов относительно корня - PullRequest
0 голосов
/ 13 апреля 2019

Это для автономного приложения.

В html мы можем получить доступ к файлам, относящимся к html-странице.Например:

  • <script src="scripts/jquery-3.3.1.min.js"></script>
  • <link rel='stylesheet' href='styles/style.css'>
  • <img src='./images/file1.jpg'/>

Если у меня много изображений в /imagesкаталог, есть ли способ перечислить все изображения в каталоге, используя Javascript, или мне нужно жестко закодировать имена изображений?

Я прошу специально для использования Javascript и без Node, для запуска файловпрямо из Chrome.

Ответы [ 3 ]

0 голосов
/ 13 апреля 2019

попробуйте запустить chrome.exe --allow-file-access-from-files

, запустив указанную выше командную строку, она активирует http-вызов, используя:

$.get("file:///url", function(data) {})

обратите внимание, что данные возвращают строку.если вы добавите его в свой HTML, он покажет каталог

0 голосов
/ 13 апреля 2019

Hand не кодируется, если вы не используете веб-сервер (вам не нужно устанавливать его, есть много инструментов для обслуживания одного каталога, таких как PHP или Python встроенные серверы).

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

В случае ссылок браузеры отклоняют их на удаленных страницах (с веб-сервера), но не в файлах, которые уже являются локальными (в противном случае вы не могли видеть загруженную версию веб-страницы).

Я никогда не проверял абсолютные пути, но (я думаю) он должен работать, если у вас есть разрешения для этого каталога.

Если нет, то существуют расширения браузера, такие как , это для Firefox , которые позволяют открывать эти ссылки (если пользователь их принимает).

Проблема в том, что, как я уже сказал, вам нужно поместить ссылки на страницу вручную, и если их так много, это может занять некоторое время, если вы не привыкли к настоящим редакторам, таким как Vim или, по крайней мере, вы можете сгенерировать его, используя любой язык программирования.

0 голосов
/ 13 апреля 2019

Обычно клиент не имеет доступа к дереву каталогов сервера. Это означает, что любой клиентский JavaScript не сможет отобразить дерево каталогов.

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

Если вы (против моей рекомендации) хотите это сделать, вы можете настроить apache для вывода списка файлов, а затем получить список файлов с помощью JavaScript.

Гораздо лучший способ сделать это - использовать код на стороне сервера (Node.js Server, PHP и т. Д.), Который имеет доступ к файловой системе и может предоставить список файлов.

Только локальное приложение

Javascript обычно не имеет доступа к локальным ресурсам и выдает ошибку CORS при попытке извлечь нормальные ресурсы. (Ошибка CORS появляется, если вы уже находитесь в локальном каталоге или нет.) Это делает практически невозможным обойтись без веб-сервера.

...