0

我正在尝试在我的 rails 应用程序中启动并运行 Galleria 幻灯片。它适用于本地服务器(在 Chrome 和 Firefox 上),但不适用于实时服务器(在 Chrome 或 Firefox 上)。在 Chrome 中,幻灯片在加载时会短暂闪烁(可能是 0.25 秒?),然后才会消失。在 Firefox 中,它根本就不会出现。当我查看 Chrome 上的检查元素发生的情况时,在网络选项卡下,它说 Galleria.classic.css 由于 404 错误而被取消。

我的应用程序中有以下代码:(请注意,最初,我在页面上有其他代码,但我将幻灯片拉到了一个仅限管理员的页面,这样我就可以实时检查它而不会弄乱面向客户的东西,仅此而已那在页面上。它在面向客户的页面或管理页面上都不起作用。

在视图中:

<head><link rel="stylesheet" type="text/css" href="assets/libs/galleria/themes/classic/galleria.classic.css"></head>
<body>
  <div id="slideshow">
    <div id="galleria">
        <%= image_tag("pic1_url")%>
        <%= image_tag("pic2_url")%>
        <%= image_tag("pic3_url")%>
    </div>
    <script>
        $('#galleria').galleria();
    </script>
  </div>
</body> 

在我的 application.css 样式表中,我有:

 *= require_self
 *= require galleria/themes/classic/galleria.classic
 *= require_tree .
 */

在我的 application.js 文件中,我有:

//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require galleria/galleria-1.2.9.min
//= require galleria/themes/classic/galleria.classic
//= require_tree .

我尝试过的修复:

我怎样才能让 Galleria 工作?

4

1 回答 1

0

当您将文件部署到生产环境时,它会将您的所有资产编译并收集在一个名为 的文件夹中assets,因此指定的路径不起作用,因为galleria/themes/classic/您正在使用的 Heroku 服务器或其他服务器上没有路径。

因此,如果有必要,您需要像这样在 HTML 文件中指定路径href="assets/galleria.classic.css"

但实际上你的

*= require galleria/themes/classic/galleria.classic

//= require galleria/galleria-1.2.9.min
//= require galleria/themes/classic/galleria.classic

已经完成了,所有必要的代码都必须在你的编译.css.js文件中。因此,您可以<link rel...>从代码中删除部分内容。

PS 我试图避免css,javascripts和文件夹中的子images文件夹,因为它经常会导致像你这样的问题,而且它也使应用程序结构更加清晰。但要这样做,您需要检查插件文件,如果它们有任何指定的相互路径,并删除/folder/subfolder/它们的任何部分,只留下文件名。

于 2013-07-10T20:48:41.930 回答