Тема 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>