我最近在让Galleria插件与Rails4 Pipeline一起工作时遇到了一个问题,我花了一段时间才弄清楚如何让它工作,所以我想分享解决方案,以防有人遇到类似的问题。
1) 下载插件后,将galleria-1.3.3.js
(它是我编写当天的当前版本)和galleria.classic.js
(或其他样式的js文件)放入vendor/assets/javascripts
2) 将galleria.classic.css
(或其他主题样式表)放入vendor/assets/stylesheets
3) 将//= require galleria-1.3.3
和//= require galleria.classic
添加到您的application.js
文件,将*= require galleria.classic
添加到application.css
文件
4) 资产管道将指纹添加到图像中,这使得很难通过普通的css访问它们,因此需要将"scs"添加到galleria样式表中,如galleria.classic.css.scss
,并将url(classic-map.png)
更改为asset_url("classic-map.png");
,第二个图像也是如此。
5) 打开galleria.classic.js
文件,找到css:"galleria.classic.css"
或类似的文件,然后将其更改为css: false
6) 现在,您只需要为一些js文件中的其他元素添加Galleria.run('#galleria');
或其他不同的内容就可以了:)
附言:我是Rails的一个新手,可能会犯一些愚蠢的错误,但我希望这对任何人都有帮助:)
我刚刚在Rails4.1以及Galleria 1.3.5版本中使用过它。将文件从galleria主文件夹复制到各个部分。请注意,我使用的是经典/默认(免费)主题。
# app/assets/images
classic-loader.gif
classic-map.png
# app/assets/javascripts
galleria-1.3.5.js
galleria.classic.js
# app/assets/stylesheets (rename with .scss extension)
galleria.classic.css.scss
打开galleria.classic.js
,并将行css: '...'
编辑为css: false
(如果不更改代码,请围绕行17)。
这就是我所要做的,以便让它与Rails4一起工作。我试着把文件放在vendor/assets
文件夹中,但很快就变成了噩梦。我发现上面的解决方案是最简单/最干净的。
更新:2016-02-02
我仍然使用Ruby 2.2.3、Rails 4.2.4、Galleria 1.4.2的相同设置。
确保在galleria.classic.scss
样式表中使用了image-url("classic-map.png")
帮助程序。当前设置没有问题。
谢谢你,这真是太棒了,正是我所需要的(我希望我能在18个小时的拔头发之前找到它,让它发挥作用)!
我将添加更多可能对任何人都有帮助的内容:
1) 我不得不改为galleria.css.scss.erb,这样它就会插入类加载器,如下所示:background:url(<%=asset_path"/galleria/classic-loader.gif"%>)(不确定为什么,但asset_url对我不起作用)
2) 相关的,我还必须拍摄经典的地图和加载程序图像,并将它们放在应用程序/资产/图像中
3) 根据Galleria的说法,我移动的文件是min.js文件,而不是普通的.js
4) 在视图的标题中,我添加了:
<script src="<%= asset_path "/galleria-1.3.5.min.js" %>" ></script>
<script src="<%= asset_path "/galleria.flickr.min.js" %>" ></script>
<script src="<%= asset_path "/galleria.classic.min.js" %>" ></script>
5) 在每个视图加载Galleria的脚本中,我修改了他们的指令,比如:
Galleria.loadTheme("<%= asset_path "/galleria.classic.min.js" %>");