Можно ли использовать ng-include без веб-сервера? - программирование

Можно ли использовать ng-include без веб-сервера?

Я запускаю приложение AngularJS, которое просто включает файл

<div ng-include src="'sample.html'"></div>

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

Работает ли ng-include вне веб-сервера? Я проверил статус сети в Chrome, он говорит ОПЦИИ в методе и Отменить отмену по статусу

4b9b3361

Ответ 1

Один способ решения заключается в построении шаблонов:

<script type="text/ng-template" id="sample.html">
  <div>This is my sample template</div>
</script>

Fiddle.

Это помещает ваш шаблон в кеш шаблона Angular. Когда обрабатывается директива ng-include, Angular сначала проверяет кеш.

Ответ 2

Проблема связана с протоколом file://. В основном все браузеры запрещают XHR-запросы, когда файл отправлен с file://. Вот почему запросы AJAX терпят неудачу. И ng-include использовать их для загрузки файлов.

Вы можете запустить Chrome с параметром --allow-file-access-from-files, чтобы отключить проверки для file://.

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

Но лично предпочитаем запускать простейший NodeJS script для обслуживания файлов, которые можно найти в проекте angular-seed. Он требует всего node двоичного кода и создает ощущение обычного веб-сервера.

Ответ 3

У меня была аналогичная проблема, и я решил ее, запустив простой сервер nodejs для обслуживания статических файлов - http-server. Убедитесь, что у вас установлен nodejs, затем:

Установка:

$ sudo npm install http-server -g

Затем из каталога проекта:

$ http-server

Теперь вы можете получить доступ к своим файлам:

localhost:8080/whatever-file-you-have-in-your-directory.html

Ответ 4

Вы можете использовать Grunt вместе с grunt-html plug, чтобы предварительно скомпоновать ваши шаблоны вместе с вашим кодом Angular.

Ответ 5

Использование виртуального хоста на вашем xampp является лучшим решением и дает настраиваемое имя, например yourProject.dev

обновить httpd-vhosts файл в C:\xampp\apache\conf\extra\httpd-vhosts

<VirtualHost *:80>
        ServerName  yourProject.dev
        ServerAlias www.yourProject.dev  yourProject.com www.yourProject.com
        DocumentRoot "C:\Users\customFolder/yourProject"
        <Directory "C:\Users\customFolder/yourProject">
            DirectoryIndex index.html index.php
            ServerSignature Off
            Options Indexes FollowSymLinks IncludesNoExec
            AllowOverride All
            Allow from all
            Require all granted
      </Directory>
</VirtualHost>

затем обновите файл хостов до 127.0.0.1 yourProject.dev

в Windows: c:\Windows\System32\Drivers\etc\hosts

в Mac: /private/etc/hosts

не забудьте оставить свой xampp/wampp