Сайт, созданный Yeoman Angular, развернутый на хостинге Firebase, постоянно перезагружает скрипты

Я создал тестовое веб-приложение с помощью генератора yeoman angular и развернул его на хостинге Firebase. Когда я запускаю приложение локально, оно работает нормально. Когда он развернут, консоль разработчика Chrome сообщает: «ВНИМАНИЕ: попытка загрузить angular более одного раза». Когда я запускаю локально с «firebase serve», я вижу, что запросы GET для поставщика и js-файлы сценариев повторяются бесконечно. Если я запускаю локально с "ворчанием", этого не происходит, и сайт работает правильно.

Вот скрипты, добавляемые на страницу:

<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-messages/angular-messages.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-touch/angular-touch.js"></script>
<script src="bower_components/firebase/firebase.js"></script>
<!-- endbower -->
<!-- endbuild -->

<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/services/firebaseService.js"></script>
<script src="scripts/controllers/mainview.js"></script>
<script src="scripts/controllers/signinview.js"></script>
<script src="scripts/controllers/signinout.js"></script>
<script src="scripts/directives/signinout.js"></script>
<!-- endbuild -->

Вот теги script, которые генерируются из этого задачей сборки grunt, которая включает в себя задачи concat, uglify, minify, которые по умолчанию включены в angular-generator:

<script src="scripts/vendor.566b3c64.js"></script> 
<script src="scripts/scripts.ea0abd4c.js"></script>

Когда я использую firebase для запуска локального сервера, я бесконечно повторяю следующие сообщения:

127.0.0.1 - - [11/Jul/2016:17:53:51 +0000] "GET /scripts/vendor.58eb8161.js?_=1468259614482 HTTP/1.1" 200 633643 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:51 +0000] "GET /scripts/scripts.3f5216cb.js?_=1468259614483 HTTP/1.1" 200 3300 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/vendor.58eb8161.js?_=1468259614484 HTTP/1.1" 200 633643 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/scripts.3f5216cb.js?_=1468259614485 HTTP/1.1" 200 3300 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/vendor.58eb8161.js?_=1468259614486 HTTP/1.1" 200 633643 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/scripts.3f5216cb.js?_=1468259614487 HTTP/1.1" 200 3300 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/vendor.58eb8161.js?_=1468259614488 HTTP/1.1" 200 633643 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/scripts.3f5216cb.js?_=1468259614489 HTTP/1.1" 200 3300 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/vendor.58eb8161.js?_=1468259614490 HTTP/1.1" 200 633643 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
127.0.0.1 - - [11/Jul/2016:17:53:52 +0000] "GET /scripts/scripts.3f5216cb.js?_=1468259614491 HTTP/1.1" 200 3300 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"

person Rob Wilburn    schedule 11.07.2016    source источник
comment
В вашем фрагменте HTML vendor.js никогда не включается, поэтому я не уверен, как он будет загружаться повторно.   -  person ssube    schedule 11.07.2016
comment
Я отредактировал свой вопрос, чтобы включить сценарии после того, как задача сборки grunt сжимает все в vendor.js и script.js.   -  person Rob Wilburn    schedule 11.07.2016
comment
И я добавил некоторые подробности о том, что я вижу, когда сайт развернут.   -  person Rob Wilburn    schedule 11.07.2016


Ответы (1)


Я нашел источник проблемы, даже если я не совсем понимаю, что происходит. У меня была пользовательская директива angular, которая ссылалась на html-файл для его templateUrl. Я считаю, что что-то в структуре папок, созданной генератором yeoman angular, не соответствовало тому, как я настроил пользовательскую директиву. Я переместил шаблон в строку и поместил его непосредственно в пользовательскую директиву, и это решило проблему. Как я уже сказал, я не понимаю, почему. Я нашел это решение, начав с нуля и добавляя по одной вещи за раз, пока снова не увидел проблему.

person Rob Wilburn    schedule 11.07.2016