ruby-on-rails – 如何在Rails 3.0.x中使用Sprockets 2(如何使用
我正在尝试复制rails 3.0应用程序中rails 3.1中引入的资产管道的基础知识.
到目前为止,我有这样的事情: 它很棒: >我的资产在app / assets /,lib / assets,供应商/资产…… 问题是,我不希望rails应用程序提供静态资产.服务器应该这样做. 例如,我有 > application-02f8c96b342b4569513d0edf39ef55eb.css 但是在rails 3.1中,你可以在style.css.scss.erb中做类似的事情 background: url(<%= asset_path("gallery-icons.png") %>) 而且你会得到 background: url(/assets/gallery-icons-0e922050a85718fef3cd570df4eb5845.png) 在预编译的文件中. 对于stylesheet_link_tag,javascript_link_tag也是如此,它们在rails 3.1中被覆盖以添加哈希,如果我没有弄错的话. 我怎样才能做到这一点? 给我你的每一个想法!谢谢. 解决方法
乔希在这里回答我:
https://github.com/sstephenson/sprockets/issues/151
Assets = Sprockets::Environment.new(Rails.root) do |env| assets = ["javascripts","stylesheets","images","fonts"] paths = ["app/assets/","lib/assets/","vendor/assets/" ].map{|p| assets.map{|f| "#{p}#{f}" } }.flatten paths.each{ |path| env.append_path path } env.static_root = Rails.root.join("public","assets") end 基本上,我有一个rake任务来预编译资产: namespace :assets do task :precompile => :environment do Assets.precompile(*Rails.application.config.assets.precompile) end end 我的问题主要是知道如何申请这些资产. Assets['application.js'].digest 拥有指纹,很容易获得文件名. 我创建了帮助程序来包含这些资产:sprockets_include_tag和sprockets_image_tag. 木已成舟. (虽然现在,我不能在我的样式表中使用这些助手(style.css.scss.erb)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Ajax技术解析
- ruby – ‘keys.each’和’each_key’有什么区别?
- Primefaces ajax根据backbean结果更新不同的面板
- 正则表达式30分钟入门教程(转载)
- ruby-on-rails – Rails 3连接 – 仅选择某些列
- 【方法】如何限定IP访问Oracle数据库
- ruby-on-rails – 在VirtualBox上的Ubuntu 11.10上的Rails
- 聚合国内外主流广告平台|开发者服务-KeyMob移动广告聚合平台
- 用 Swift、Foursquare API 和 Realm 創建一個咖啡屋 App
- c – 可重定位多平台安装的理想cmake安装目录结构是什么?