我正试图在我的rails应用程序中启动并运行Galleria幻灯片。它适用于本地服务器(在Chrome和Firefox上),但不能在实时服务器上运行(在Chrome或Firefox上)。在Chrome中,幻灯片在加载前会短暂闪烁(可能是.25秒?),然后才会离开。在Firefox中,它根本就不会出现。 当我查看Chrome上的inspect元素时,在网络选项卡下,它表示由于404错误而取消了galleria.classic.css。
我在我的应用程序中有以下代码:(请注意,最初,我在页面上有其他代码,但我将幻灯片显示为仅限管理员的页面,因此我可以在不弄乱面向客户端的内容的情况下检查它这就是页面上的所有内容。它在面向客户端的页面或管理页面上都不起作用。
在视图中:
<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 works locally in all browsers but only IE8 & Chrome when hosted)。它们都是正斜杠而不是向后斜杠。
在galleria.classic.js中,将css:galleria.classic.css更改为css:false(根据此答案:Galleria not showing up on Heroku in Rails app)
我将我的Galleria放在vendor / assets / libs / galleria的rails资产管道中(根据这个答案:Where to put Galleria (jQuery image gallery framework) in Rails 3.1 Asset Pipeline?)
我将type =“text / css”添加到头部样式表的链接中(根据第二个答案:Galleria not loading on initial page visit)
如何让Galleria工作?
答案 0 :(得分:0)
当您将文件部署到生产环境时,它会将所有资产编译并收集到一个名为assets
的文件夹中,因此指定的路径不起作用,因为Heroku服务器或其他路径上没有galleria/themes/classic/
路径你正在使用的服务器。
因此,如果有必要,您需要在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...>
部分即可。
P.S。我正在尝试避免css
,javascripts
和images
文件夹中的子文件夹,因为它经常会导致像您这样的问题,并且它会使应用程序结构更加清晰。但要这样做,您需要检查插件文件,如果它们彼此之间有任何指定的路径,并删除它们中的任何/folder/subfolder/
部分,只留下文件名。