Search code examples
ruby-on-rails-4modelcdnassets

Rails referencing assets in models Rails 4 and CDN


I have a method inside a Model that returns an image URL as a String such as: "assets/myImage.png", this works well in production without CDN, the image is being served.

Using the CDN (Cloudfront) serves only files with its fingerprint or that's what I've read. So when I open up my Google Console it shows "assets/myImage.png", but not the fingerprinted version, so it obviously doesn't show the image.

In short: I need to know how to use a helper method that returns the fingerprinted version of my image inside a Model.

Any help would be great!


Solution

  • I believe you can access the Sprockets helper using:

    • self.class.helpers.asset_path('application.css') or
    • self.class.helpers.asset_digest_path('application.css')

    Both of these are a backward way of getting access to the helpers that Sprockets uses for fingerprinting assets in production. Does that work?

    Based on this SO answer