Тема Galleria иногда не загружается

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

 Uncaught Error: Fatal error: Theme at javascript/themes/classic/galleria.classic.js
 could not load, check theme path.

когда я перезагружаю страницу, все возвращается в норму. Это код, который я использую для его загрузки:

  <script> 
        // Load the classic theme
   Galleria.loadTheme('javascript/themes/classic/galleria.classic.js');
    </script> 

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

6 ответов


1 Попробуйте последнюю сборку в gihub:https://github.com/aino/galleria/blob/master/src/galleria.js

2 попробуйте загрузить тему с помощью тега скрипта:

<script src="javascript/themes/classic/galleria.classic.js"></script>

У меня было аналогичное сообщение сегодня, когда я попытался использовать Galleria. Это произошло только в Firefox. Что я сделал, чтобы обойти это, чтобы добавить ссылку на таблицу стилей темы непосредственно в head. Я также сохранил ссылку на сценарий темы После таблицы стилей, на всякий случай. После этого сообщение об ошибке исчезло, и Galleria работает так, как должно.


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

Galleria.loadTheme = function( src, options ) {

var loaded = false,
    length = _galleries.length,
    err = window.setTimeout( function() {
        Galleria.raise( "Theme at " + src + " could not load, check theme path.", true );
    }, 5000 );

в версии 1.2.2 тайм-аут составляет всего 2 секунды, в приведенном выше (1.2.6) тайм-аут составляет 5 секунд. Поэтому обновление до более поздней версии или настройка тайм-аута определенно стоит попробовать.


Я принял метод, указанный Дэвидом, загрузив тему с помощью тега скрипта:

<script src="javascript/themes/classic/galleria.classic.js"></script>

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

<link rel="stylesheet" type="text/css" href="galleria/themes/classic/galleria.classic.css" />

учитывая случайное поведение, это похоже на ошибку браузера. Более конкретно, что браузер теряет трек базового URL-адреса. Я бы дал полный путь от webroot и посмотреть, исчезает ли ошибка. Например:

Galleria.loadTheme('/gallery/javascript/themes/classic/galleria.classic.js');

Если это не помогает, попробуйте:

try {
    Galleria.loadTheme('javascript/themes/classic/galleria.classic.js');
}
catch(e) {
    location.reload();
}

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


на Руководство Для Начинающих заявляет, что тег скрипта, в который вы загружаете тему, должен быть после изображения в источнике html. Вероятно, вы добавили тег script в тег head. Пример из руководства:

<body>
    <div id="galleria">
        <img src="photo1.jpg">
        <img src="photo2.jpg">
        <img src="photo3.jpg">
    </div>
    <script>
        Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js');
        Galleria.run('#galleria');
    </script>
</body>