Ответ 1
1 Попробуйте последнюю сборку в gihub: https://github.com/aino/galleria/blob/master/src/galleria.js
2 Попробуйте загрузить тему, используя тег script:
<script src="javascript/themes/classic/galleria.classic.js"></script>
Я использую слайд-шоу 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>
Я искал вокруг, но до сих пор не нашел решение, которое работает. Моя личная идея заключалась в том, чтобы script сохранял загрузку до тех пор, пока она не преуспеет, так как при перезагрузке страницы работает. Как мне это сделать?
1 Попробуйте последнюю сборку в gihub: https://github.com/aino/galleria/blob/master/src/galleria.js
2 Попробуйте загрузить тему, используя тег script:
<script src="javascript/themes/classic/galleria.classic.js"></script>
У меня было подобное сообщение сегодня, когда я пытался использовать Galleria. Это произошло только в Firefox. То, что я сделал, чтобы обойти это, - добавить ссылку на таблицу стилей непосредственно в head
. Я также добавил ссылку на тему script, после таблицы стилей, на всякий случай, когда это было необходимо. После этого сообщение об ошибке исчезло, и 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:
<script src="javascript/themes/classic/galleria.classic.js"></script>
Но в итоге получилась еще одна ошибка (Fatal error: Theme 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();
}
Но это может продолжаться бесконечно. Я попытался бы дойти до конца ошибки и начать с разных браузеров, чтобы исключить ошибку в вашем коде.
Руководство для начинающих утверждает, что тег script, в который вы загружаете тему, должен быть после изображений в источнике HTML. Вероятно, вы добавили тег script в тег заголовка. Пример из руководства:
<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>