Skip to content

No such middleware to insert before: ActionDispatch::Static (RuntimeError) on production #1101

@aeberlin

Description

@aeberlin

In production, with config.serve_static_assets = false:

$ be rescue rails s -e production
=> Booting Thin
=> Rails 4.2.5 application starting in production on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/foo/.gem/ruby/2.2.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/stack.rb:125:in `assert_index': No such middleware to insert before: ActionDispatch::Static (RuntimeError)
    from /Users/foo/.gem/ruby/2.2.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/stack.rb:88:in `insert'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/configuration.rb:68:in `block in merge_into'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/configuration.rb:67:in `each'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/configuration.rb:67:in `merge_into'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/engine.rb:501:in `app'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/application/finisher.rb:34:in `block in <module:Finisher>'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `call'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
    from /Users/foo/.rubies/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!'
    from /Users/foo/Projects/my_app/config/environment.rb:5:in `<top (required)>'
    from /Users/foo/.gem/ruby/2.2.4/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
    from /Users/foo/.gem/ruby/2.2.4/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `block in require'
    from /Users/foo/.gem/ruby/2.2.4/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/foo/.gem/ruby/2.2.4/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
    from /Users/foo/Projects/my_app/config.ru:3:in `block in <main>'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
    from /Users/foo/Projects/my_app/config.ru:in `new'
    from /Users/foo/Projects/my_app/config.ru:in `<main>'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/server.rb:61:in `app'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
    from /Users/foo/.gem/ruby/2.2.4/gems/rack-1.6.4/lib/rack/server.rb:272:in `start'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/server.rb:80:in `start'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in `block in server'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/foo/.gem/ruby/2.2.4/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:10:in `require'
    from bin/rails:10:in `<main>'

It seems, based on the documentation here, that ActionDispatch::Static is only inserted when serve_static_assets is true.

Is this expected behavior from locomotive's perspective, that this should be enabled even in production? If so, how does one handle assets being served from alternative nodes? Either way, probably should be mentioned in documentation somewhere, since it took me a bit to track down and I'm rather proficient.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions