diff --git a/CHANGELOG.md b/CHANGELOG.md index 6366a4d92..d958f13d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ **Master** +- Preserve cached asset ownership while expanding paths. [Oskar Eichler](https://github.com/OskarEichler) + Get upgrade notes from Sprockets 3.x to 4.x at https://github.com/rails/sprockets/blob/master/UPGRADING.md # 4.4.1 diff --git a/README.md b/README.md index 958b44cd4..8fa871451 100644 --- a/README.md +++ b/README.md @@ -714,3 +714,5 @@ Please see the [CHANGELOG](https://github.com/rails/sprockets/tree/master/CHANGE ## License Sprockets is released under the [MIT License](MIT-LICENSE). + +Loading a cached asset expands its paths on a copy, preserving reusable cache entries across application roots. diff --git a/lib/sprockets/loader.rb b/lib/sprockets/loader.rb index 85af08175..3e9a75368 100644 --- a/lib/sprockets/loader.rb +++ b/lib/sprockets/loader.rb @@ -111,6 +111,8 @@ def expand_key_from_hash(hash, key) def asset_from_cache(key) asset = cache.get(key, true) if asset + asset = asset.dup + asset[:metadata] = asset[:metadata].dup asset[:uri] = expand_from_root(asset[:uri]) asset[:load_path] = expand_from_root(asset[:load_path]) asset[:filename] = expand_from_root(asset[:filename])