Galleria тема иногда не загружается - PullRequest
11 голосов
/ 31 мая 2011

Я использую слайд-шоу 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 ]

13 голосов
/ 01 июня 2011

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

2 Попробуйте загрузить тему, используя вместо этого тег скрипта:

<script src="javascript/themes/classic/galleria.classic.js"></script>
1 голос
/ 18 февраля 2013

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

<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" />
1 голос
/ 06 ноября 2011

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

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 секунд. Поэтому обновление до более поздней версии или настройка тайм-аута - это определенно то, что нужно попробовать.

1 голос
/ 02 сентября 2011

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

0 голосов
/ 23 июня 2013

В руководстве для начинающих указано, что тег сценария, в который вы загружаете тему, должен быть после изображений в источнике 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>
0 голосов
/ 31 мая 2011

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

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

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

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

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

...