Merge pull request #13326 from schneems/schneems/add-asset-flag

Flag `config.assets.raise_runtime_errors` in dev
This commit is contained in:
Guillermo Iguaran 2013-12-19 17:39:53 -08:00
commit d6ac7d72c5
2 changed files with 32 additions and 0 deletions

@ -577,6 +577,33 @@ would generate this HTML:
The `body` param is required by Sprockets.
### Runtime Error Checking
By default the asset pipeline will check for potential errors in development mode during
runtime. To disable this behavior you can set:
```ruby
config.assets.raise_runtime_errors = false
```
When `raise_runtime_errors` is set to `false` sprockets will not check that dependencies of assets are declared properly. Here is a scenario where you must tell the asset pipeline about a dependency:
If you have `application.css.erb` that references `logo.png` like this:
```css
#logo { background: url(<%= asset_data_uri 'logo.png' %>) }
```
Then you must declare that `logo.png` is a dependency of `application.css.erb`, so when the image gets re-compiled, the css file does as well. You can do this using the `//= depend_on_asset` declaration:
```css
//= depend_on_asset "logo.png"
#logo { background: url(<%= asset_data_uri 'logo.png' %>) }
```
Without this declaration you may experience strange behavior when pushing to production that is difficult to debug. When you have `raise_runtime_errors` set to `true`, dependencies will be checked at runtime so you can ensure that all dependencies are met.
### Turning Debugging Off
You can turn off debug mode by updating `config/environments/development.rb` to

@ -29,5 +29,10 @@ Rails.application.configure do
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config.assets.debug = true
# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config.assets.raise_runtime_errors = true
<%- end -%>
end