Skip to content

Instantly share code, notes, and snippets.

@sanemat
Created March 25, 2012 21:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sanemat/2200162 to your computer and use it in GitHub Desktop.
Save sanemat/2200162 to your computer and use it in GitHub Desktop.
Challenge offline apps on Rails 3.2

Challenge offline apps on Rails 3.2

Below articles depended on rails 3.0.3. I try to this on Rails 3.2.2.

rack-offline gem is not latest

  • rack-offline gem is v0.6.2 August 16, 2011. At github repos, after that this is fixed for rails3.1 or higher.
  • I can use Gemfile:
gem 'rack-offline', :git => 'git://github.com/wycats/rack-offline.git'

This is shown v0.6.1, but this is higher than v0.6.2(as v0.6.3).

assets pipeline

  offline = Rack::Offline.configure do
    cache "assets/application.js"
    cache "assets/application.css"
    files = Dir[
      "#{root}/**/*.html"]
    files.each do |file|
      public_dir = Pathname.new("#{root}/public")
      cache Pathname.new(file).relative_path_from(public_dir)
    end
    files = Dir[
      "#{root}/assets/**/*.{js,css,jpg,png,gif}"]
    files.each do |file|
      cache Pathname.new(file).relative_path_from(root)
    end

    network "/"
  end
  match "/application.manifest" => offline

Write cache manifest mapping is too hard

app/assets/javascripts/application.js #=> assets/application.js
app/assets/javascripts/items.js.coffee #=> assets/items.js
vendor/assets/javascripts/foo.js.erb #=> assets/foo.js
rubygems ;)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment