ruby-on-rails – 在Rails 3.1资产管道中放置Galleria(jQuery图
我在Rails 3.1的新资产管道中放置像
Galleria这样的jQuery框架有点困惑?
我知道,在技术上,应该进入/ vendor / assets / javascripts,但我的理解是,这个Galleria文件夹与jQuery&主题想要在实际网站的根(/ galleria)中,以便正常工作. 此外,当我们在这里,放置以下脚本的地方,它将只出现在带有图库的页面上? <script> $('#gallery').galleria({ width:500,height:500 }); </script> 编辑:惊讶没有回应!也许广场是不是很受欢迎?这些是我要加载的文件.他们是捆绑的,虽然我可以轻松地移动他们: 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.将加载应用/资产,库/资产和供应商/资产的所有内容? 解决方法
我有同样的问题,花了一段时间才能上班.最初,它可以在开发上正常工作,但是当我们转向生产时,Galleria默默地失败了,因为资产文件名现在具有“指纹”.这也似乎是jQuery UI主题和许多其他这样的脚本的问题.
当然,你可以回到旧的做事方式,把所有东西都放在“公共”中,但是我们希望自动合并所有的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不要尝试加载样式表. 还有一件事 – 当试图编译这些资产时,我遇到了一个明显的bug in Rails 3.1.0.当我运行rake资产:预编译时,我有错误,如: $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被释放,这不是必需的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |