11

我在我的网站上使用 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> 

我已经四处搜索,但仍然没有找到有效的解决方案。我个人的想法是有一个脚本可以一直加载直到它成功,因为重新加载页面可以工作。我该怎么做?

4

6 回答 6

14

1 在 gihub 尝试最新版本:https ://github.com/aino/galleria/blob/master/src/galleria.js

2 尝试使用脚本标签加载主题:

<script src="javascript/themes/classic/galleria.classic.js"></script>
于 2011-06-01T18:05:56.500 回答
2

我采用了大卫指出的方法,使用脚本标签加载主题:

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

但最终又出现了另一个错误(致命错误:20 秒后无法加载主题 CSS)。我还建议使用链接标签添加 CSS:

<link rel="stylesheet" type="text/css" href="galleria/themes/classic/galleria.classic.css" />
于 2013-02-18T14:49:53.907 回答
1

今天,当我尝试使用 Galleria 时,我收到了类似的信息。它只发生在 Firefox 中。我为解决这个问题所做的就是将主题样式表链接直接添加到head. 我也保留了主题脚本链接,在样式表之后,以防万一。之后,错误消息消失了,Galleria 正在正常工作。

于 2011-09-02T05:12:51.653 回答
1

从错误消息的来源来看,并考虑到随机事件,这个问题可能来自加载时简单地达到超时:

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 秒。所以升级到更高版本,或者自定义超时时间,绝对是值得一试的。

于 2011-11-06T15:28:07.277 回答
0

鉴于随机行为,感觉就像是浏览器错误。更具体地说,浏览器丢失了对基本 URL 的跟踪。我会给出来自 webroot 的完整路径,看看错误是否消失。例如:

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

如果这没有帮助,请尝试:

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

但这可以无限进行。我会尝试找出错误的根源并从不同的浏览器开始以排除代码中的错误。

于 2011-05-30T23:00:28.497 回答
0

初学者指南指出,加载主题的脚本标记需要位于 html 源代码中的图像之后。您可能已经在 head 标签中添加了 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>
于 2013-06-23T14:08:25.287 回答