Comments (8)
Ignore that!
I do see asset tag timestamps on stylesheet and javascript links, just not on the first page load. That makes sense to me now.
I'm still not seeing them on the image urls in CSS, but those do not pass through asset_url()...
from jammit.
This works:
diff --git a/lib/jammit/compressor.rb b/lib/jammit/compressor.rb index 0b46b95..3ed161b 100644 --- a/lib/jammit/compressor.rb +++ b/lib/jammit/compressor.rb @@ -7,6 +7,8 @@ module Jammit # all stylesheets, with all enabled assets inlined into the css. class Compressor + include ActionView::Helpers::AssetTagHelper + # Mapping from extension to mime-type of all embeddable assets. EMBED_MIME_TYPES = { '.png' => 'image/png', @@ -110,7 +112,7 @@ module Jammit File.read(css_path).gsub(EMBED_DETECTOR) do |url| ipath, cpath = Pathname.new($1), Pathname.new(File.expand_path(css_path)) is_url = URI.parse($1).absolute? - is_url ? url : "url(#{rewrite_asset_path(ipath, cpath, variant)})" + is_url ? url : "url(#{construct_asset_path(ipath, cpath, variant)})" end end stylesheets.join("\n") @@ -143,10 +145,11 @@ module Jammit # Return a rewritten asset URL for a new stylesheet -- the asset should # be tagged for embedding if embeddable, and referenced at the correct level # if relative. - def rewrite_asset_path(asset_path, css_path, variant) + def construct_asset_path(asset_path, css_path, variant) public_path = absolute_path(asset_path, css_path) return "__EMBED__#{public_path}" if embeddable?(public_path, variant) - asset_path.absolute? ? asset_path.to_s : relative_path(public_path) + source = asset_path.absolute? ? asset_path.to_s : relative_path(public_path) + rewrite_asset_path(source) end # Get the site-absolute public path for an asset file path that may or may
from jammit.
Alright -- thanks for spearheading this one. I had mixed feelings on whether or not we should be messing with your CSS contents by adding in the rails timestamp -- since that's not what RAILS_ASSET_ID
does by default. But I think it is a pretty nice feature, so thanks for making it happen.
I've merged your branch and made some tweaks:
- Removed the dependency on action_view, in favor of DIY generation of the
asset_id
. We don't need all the fancy caching and mutex locking that Rails needs to do. - Fixed the path that was getting passed into
rewrite_asset_path
-- we need to keep the literal path in the CSS distinct from the actual path on disk. - Added and adjusted all the tests to expect a RAILS_ASSET_ID of "101".
Take a look at the changes, and let me know if you're happy with where things stand, and we can push out an update to the gem.
from jammit.
Quick ping -- I'd still like to push out a new version of the gem. Have you had a chance to take a look?
from jammit.
Wow, somehow I completely missed your response. Checking it out now...
from jammit.
Looks good!
from jammit.
Alright, this is now out with Jammit 0.4.4 -- closing the ticket.
from jammit.
Thanks!
from jammit.
Related Issues (20)
- New gem version? 0.6.6? HOT 17
- Error when running jammit 0.6.5 (ruby 1.9.3 + rails 3.2.8 + windows 7 64-bit) HOT 2
- Templates are not loaded on production
- What will be the max js file size for compression ?
- Segmentation fault when calling rake jammit:package HOT 2
- Per-file compile settings HOT 1
- JSMin should not be the default JS Minifier
- Adding path changes all JST paths HOT 2
- new tag/release needed to apply patch for Rails 4! HOT 8
- Jammit should warn when it fails to load an explicitly configured compressor. HOT 2
- what os the use in document cloud viewer ? HOT 1
- Remove jsmin from dependencies HOT 2
- Is there a way to use jammit independent of rails? HOT 2
- The character sequence backslash single quote breaks jst files
- Where are timestamps? HOT 2
- Produce an optional manifest of files being compiled
- rake aborted! when activesupport-3.0.20 fails to load jammit HOT 2
- NameError (undefined local variable or method `page_cache_directory' for #<Jammit::Controller:0x007f1daee33488>): HOT 4
- DEPRECATION WARNING: append_before_filter is deprecated and will be removed in Rails 5.1. Use append_before_action instead. HOT 1
- sdt
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jammit.