Угловой модуль загружен, но ошибка JavaScript говорит, что он недоступен

У меня есть журналы сервера, которые показывают, что клиент загружает все модули, необходимые в моем ng-app = M декларация прилагается к <html> элемент. Это означает, что все зависимости, кажется, загружены правильно, прежде чем мое приложение объявлено и инициализировано.

Мое приложение выглядит так:

var app = angular.module('M', ["ui.router",'ui.bootstrap','angular.media','chart.js','ngMessages','ngTouch']);

Модуль сообщил на мой сервер как причину Module Unavailableошибка angular.media хотя я вижу следующее в журнале сервера:

XX.XX.X.XXX - - [13/Dec/2017:19:31:24 +0000] "GET /getScript/angular-media.js?v=7.1.7 HTTP/1.1" 200 5172 "https://example.com/home" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/6.1.6 Safari/537.78.2"
XX.XX.X.XXX - - [13/Dec/2017:19:31:25 +0000] "GET /getScript/authapp.js?v=9.2 HTTP/1.1" 200 1449 "https://example.com/home" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/6.1.6 Safari/537.78.2"

Я считаю, что ошибка может быть связана с тем, что angular.media опирается на ui.router а также, что может быть причиной проблемы? ui.router загружается из кэша до достижения /home стр.

angular.module('angular.media', ["ui.router"])

Что вызывает эту проблему, как вы думаете?

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

Угловая ошибка URL: ЗДЕСЬ

Первые 10 строк Angular Media:

angular.module('angular.media', ["ui.router"])
.controller('Controller', ['$scope', function($scope) {
}])
.directive('angularmedia', [
           '$angularMediaStack',
  function($mediaStack) { 
  return {
    restrict: 'A',
  template:'<div class="someClass"><angularmediabar></angularmediabar><div class="earParagraph"><rewind></rewind><play></play><fastforward></fastforward></div></div>',
controller: function($scope, $element,$attrs) {

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

Так как журнал сервера указывает, что скрипт загружается, это что-то с тем, как я пытаюсь записать ошибку на стороне клиента? Я использую этот код:

window.onerror = function (message, url, lineNo) {
    try { 
        var request = new XMLHttpRequest();
        var formData = new FormData();
         formData.append("message", message);
         formData.append("url", url);
         formData.append("line", lineNo);
       request.open("POST", "/errors");
       request.send(formData);
    } catch (s) {}
    return true;
};

Далее: это порядок загрузки скрипта на /home

    <script src="https://example.com/js/jquery.min.js"></script>
    <script src="https://example.com/js/bootstrap.min.js"></script>
    <script src="https://example.com/js/jquery.scrollex.min.js"></script>
    <script src="https://example.com/js/jquery.transit.min.js"></script>
    <script src="https://example.com/js/angular.min.js"></script>
    <script src="https://example.com/js/angular-animate.min.js"></script>
    <script src="https://example.com/js/ui-bootstrap.min.js"></script>
    <script src="https://example.com/js/angular-ui-router.min.js"></script>
    <script src="/js/angular-messages.js"></script>
    <script src="/js/angular-touch.js"></script>
    <script src="/getScript/angular-media.js?v=7.1.7"></script>
    <script src="/getScript/Chart.js"></script>
    <script src="/getScript/angular-chart.js"></script>
    <script src="/getScript/moment.js"></script>
    <script src="/getScript/owl.carousel.min.js"></script>
    <!--HTML Content-->
    <script src="/getScript/authapp.js?v=9.2"></script>
    <script src="/getScript/authconfig.js?v=9.2"></script>
    <script src="/getScript/authservices.js?v=9.2"></script>
    <script src="/getScript/authdirectives.js?v=9.2"></script>
    <script src="/getScript/authcontrollers.js?v=9.2.9.2"></script>
    <script>
    app.factory('AboutMe', [function() {
    //fill with PHP derived values
    }]);
</script>

Пользователь загружает ui.router с целевой страницы, и он остается в кэше. Затем IP-адрес меняется, они переходят на домашнюю страницу, и ошибка, как я указал Модуль недоступен (angular.media), передается на мой сервер с использованием кода сообщения, который я дал выше.

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

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

0 ответов

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