我对在 Rails 3.1 的新 0x2919192131418142131414142131414142 中的 Galleria 这样的 jQuery 框架的位置感到困惑
我知道,从技术上讲,应该进入 /vendors/assets/javascripts
但是,我的理解是,带有 jQuery 和主题的 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/