Things Learnt Running Disqus Locally and Better ErrorsAug 25, 2017
I decided to start swapping out the CSS styles and layout for this site with CSS Grid. At the time of this writing, the site uses Skeleton for styles and layout. Skeleton is pretty good, but I just want to experiment with CSS Grid and different modular scales for type. So I fired up the Middleman app locally and got an
undefined local variable or method 'disqus' error in the browser window. It was just the no frills error message, so I thought that I'd like some more informative errors before I tackled running Disqus locally in my Rails app.
One of the key things to do is to only run Better Errors in development. Add this to your Gemfile:
group :development do gem "better_errors" gem "binding_of_caller" end
The second thing that I learned was that you have to explicitly remove the
Rack::ShowExceptions middleware. Add this to your
# Better Errors configuration set :show_exceptions, false # Disable Rack::ShowExceptions middleware require 'better_errors' # Do not forget to load the gem configure :development do use BetterErrors::Middleware BetterErrors.application_root = __dir__ end
The third thing that I learned is similar to the first and deals with Disqus in development. Only include Disqus in builds, not when running middleman server. Add this to your
# Development-specific configuration configure :development do activate :disqus do |d| # or setting to `nil` will stop Disqus loading d.shortname = nil end end
Lastly, Middleman app reloads all of the dependencies and breaks Better Errors. You do at least get files and line numbers in the output. I'll look around for a solution.