使用Rails资产助手运行Javascript插件

使用Rails资产助手运行Javascript插件,javascript,ruby-on-rails,asset-pipeline,Javascript,Ruby On Rails,Asset Pipeline,处理一个有趣的问题。我正在使用第三方插件Galleria。它像这样从视图主体运行 <script> Galleria.loadTheme('/assets/galleria/themes/classic/galleria.classic.min.js'); Galleria.run('.galleria'... </script> Galleria.loadTheme('/assets/Galleria/themes/classic/Galleria.classic.

处理一个有趣的问题。我正在使用第三方插件Galleria。它像这样从视图主体运行

<script>
Galleria.loadTheme('/assets/galleria/themes/classic/galleria.classic.min.js');
Galleria.run('.galleria'...
</script>

Galleria.loadTheme('/assets/Galleria/themes/classic/Galleria.classic.min.js');
Galleria.run(“.Galleria”。。。
我意识到,对于Rails资产管道,我必须使用helper标记,否则资产无法加载。因此,我将第一行分为以下几行:

Galleria.loadTheme("<%= javascript_include_tag 'galleria.classic.min.js', '/galleria/themes/classic' %>");
Galleria.loadTheme(“”);
但我不知道该如何处理Galleria.run(“.Galleria”部分,因为这不是一项资产,这是告诉它运行它应该加载的东西。保持原样不起作用,所以想看看是否还有其他想法

编辑: 最终奏效的是别人写的这篇可爱的帖子,+我必须在自己身上加上几点: 我想你想要

Galleria.loadTheme("<%= javascript_include_tag '/galleria/themes/classicgalleria.classic.min.js'%>")
Galleria.loadTheme(“”)

假设您已将js放入assets/javascripts?

中,您可能需要在assets路径中添加一些内容以进行编译。我认为您不能直接在行中使用
javascript\u include\u标记。这将生成完整的
标记。您真正想要的只是资产编译后的文件名。如果您已将javascript文件放入在
vendor/assets/javascripts
中,将它们添加到预编译列表中

# in environments/production.rb
config.assets.precompile += %w( galleria.classic.min.js )
那么我想你可以这样写:

Galleria.loadTheme('/assets/galleria.classic.min.js');
如果非摘要版本不可用,您可能需要使用其他路径帮助程序来获取摘要版本。我应该如下所示:

Galleria.loadTheme('<%= asset_path 'galleria.classic.min.js' %>');
Galleria.loadTheme(“”);

祝你好运。Galleria是一个很好的幻灯片放映。

是的,但是javascript_include_标记在每个网站上的工作方式是:你必须将实际文件与目录分开。这很奇怪请参见此处的答案:此处的答案: