Domanda

Just deployed my app to heroku and had the "Something went wrong" page appear (500 Internal Server Error).

After checking the logs I can see the error comes from this

ActionView::Template::Error (./slider/new_york_2.jpg isn't precompiled):

Within assets/images i have another folder called slider which is for all my images that are in the slider ( trying to keep things organised).

In my view i then display the image like so

<%= image_tag('./slider/new_york_2.jpg') %>

This works in development but not in production it seems.. Am i making a silly mistake anywhere or does heroku specifically not see images in sub fodlers? Im guessing it has something to do with the path structure though?

Any help appreciated

È stato utile?

Soluzione

Several possibilities here:


Path

You're using a relative path

You say it's in a view - view paths are based on the assets/images folder. So it can't be relative, as it already is. I would recommend removing the relative path, and basing it on the assets/images folder structure, like this:

<%= image_tag('slider/new_york_2.jpg') %>

Precompile

If you're using Heroku, you have to precompile your assets

This keeps consistency & is quite simple to do:

#config/production.rb
config.serve_static_assets = true

Then when you deploy to Heroku, you should do this:

rake assets:precompile RAILS_ENV=production

This should help!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top