我对在 Rails 3.1 的新 0x2919192131418142131414142131414142 中的 Galleria 这样的 jQuery 框架的位置感到困惑

我知道,从技术上讲,应该进入 /vendors/assets/javascripts 但是,我的理解是,带有 jQ​​uery 和主题的 Galleria 文件夹要位于事件站点的根目录( /galleria )中才能正常工作。

另外,当我们在做的时候,把下面的脚本放在哪里,让它只出现在带有画廊的页面上?

<script>
    $('#gallery').galleria({
        width:500,
        height:500
    });
</script>

编辑 :惊讶没有回应!?!也许Galleria不那么受欢迎?这些是我正在尝试加载的文件。虽然我可以轻松移动它们,但它们是这样捆绑的:
vendor/
  assets/
    javascripts/
      galleria-1.2.5.js
      galleria-1.2.5.min.js
    galleria/
      themes/
        classic/
          classic-loader.gif
          classic-map.png
          galleria.classic.css
          galleria.classic.js
          galleria.classic.min.js

我以为 sprockets require_tree . 会加载 app/assets 中的所有内容,0x251812231 和 23?1843 13?1843

最佳答案

我遇到了同样的问题,需要一段时间才能开始工作。最初,它在开发中运行良好,但是当我们转向生产时,Galleria 默默地失败了,因为 Assets 文件名现在有“指纹”。这似乎也是 jQuery UI 主题和许多其他此类脚本的问题。

当然,你可以回到旧的做事方式,把所有东西都扔到“公共(public)”中,但我们想要自动合并所有 css/js 文件的优势,并以 rails 方式做事。

这就是我让它工作的方式:

vendor/
  assets/
    images/
      classic-loader.gif
      classic-map.gif
    javascripts/
      galleria-1.2.5.js
      galleria.classic.js
    stylesheets
      galleria.classic.css.scss

将您的 galleria.classic.css 文件重命名为 galleria.classic.css.scss 。然后替换图像引用,像这样(我有两个):
url("classic-loader.gif") 变成 image-url("classic-loader.gif")
更新:看起来您不需要在 Rails 3.1.1 中执行此操作。只需将文件重命名为 .css.scss,rails 就会自动为您预处理 url() 调用。

在你的 app/assets/javascripts/application.js 文件中,确保你有这些行
//= require galleria-1.2.5
//= require galleria.classic
//= require_tree .

在你的 app/assets/stylesheets/application.css 文件中,确保你有这些行
*= require galleria.classic
*= require_tree .

最后,Galleria 似乎内置了一些花哨的非标准 css 加载。这就是阻止 Galleria 在我们的生产网站上加载的原因。由于我们已经包含了样式表,因此我们希望禁用此行为。只需打开 galleria.classic.js(或您的 Galleria 主题 javascript 文件),并替换以下行:
css: 'galleria.classic.css',

和:
css: false,

这将告诉 Galleria 不要尝试加载样式表。

还有一件事 - 在尝试编译这些 Assets 时,我遇到了显然是 bug in Rails 3.1.0 的东西。当我运行 rake assets:precompile 时,出现如下错误:
$ bundle exec rake assets:precompile
rake aborted!
classic-loader.gif isn't precompiled
  (in /vendor/assets/stylesheets/galleria.classic.css.scss)

长话短说,您需要在 config/environments/production.rb 中设置这一行:
config.assets.compile = true

一旦 3.1.1 发布,这应该不是必需的。

关于ruby-on-rails - 在 Rails 3.1 Asset Pipeline 中将 Galleria(jQuery 图像库框架)放在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7248199/

10-13 03:19