Rieles 4 imágenes que no se cargan en heroku

Pasé la mayor parte del día intentando cargar imágenes en mi aplicación heroku. Todo lo que bash funciona localmente, pero no después de desplegarlo en heroku.

Tengo archivos png guardados en la carpeta de imágenes debajo de mis activos. Me refiero a estas imágenes con syntax en mi CSS como;

#signin { background: url(); background-size: 100%; } 

En heroku cuando inspecciono el fondo, el enlace assets / sf.png está ahí, pero cuando lo haces, muestra una imagen rota, lo que sugiere que no se cargó correctamente.

He intentado alternar config.serve_static_assets = false en el archivo production.rb entre verdadero y falso y ninguno de los dos funciona.

tambien tengo

 group :production do gem 'pg' gem 'rails_12factor' end 

La precomstackción siempre es exitosa.

Rails 4. ¿Alguna idea sobre qué más probar?

Necesitaba combinar varias soluciones para que esto funcionara, esto es lo que hice:

Gemfile

 gem 'rails_12factor', group: :production 

en mi consola Heroku

 heroku labs:enable user-env-compile -a yourapp 

production.rb

 config.serve_static_assets = true config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' config.assets.compile = true 

No necesité precomstackr los activos localmente.

Necesitas hacer dos cosas para resolverlo. Primero, cambie estas dos líneas de falso a verdadero en el archivo production.rb .

  config.assets.compile = true config.assets.digest = true 

En segundo lugar, si tienes una syntax como esta para tus imágenes

  background: url("imgo.jpg") 

Cambiarlo a

  background: image-url("image.jpg") 

Espero que haga tu trabajo

Otro problema que tenía con esto era que estaba precomstackndo mis activos localmente, antes de cargarlo en heroku. Esto requiere que siga un conjunto diferente de pasos, que se pueden encontrar a continuación. Si precomstack sus activos localmente, debe seguir estos pasos o las actualizaciones que realice en su carpeta de activos no se reflejarán en prod.

https://devcenter.heroku.com/articles/rails-asset-pipeline

RAILS_ENV=production bundle exec rake assets:precompile

commit y push al servidor.

Tuve un problema similar y lo resolví con la siguiente línea en custom.css.scss. Dime si esto funciona para ti.

 background: image-url('sf.png') 

Al hacer referencia al activo que se realiza de diferentes maneras dependiendo de si está utilizando ERB o Sass, consulte en la Guía de Ruby on Rails .

No tengo la reputación para comentar (todavía) pero es importante tener en cuenta que la función Heroku Labs se ha eliminado, por lo que ahora obtendrá un error “No such feature: user-env-compile”

Más: https://github.com/Crowdtilt/CrowdtiltOpen/issues/251

Rails (‘4.1.5’) Tuve un problema similar de imágenes que no se muestran en Heroku pero que aparecen localmente. No utilizo gems de clip o de carrierwave, precompilo localmente y también uso RAILS_ENV = producción que presiono para github y se aplica bien a Heroku.

Solucioné el problema teniendo:

 config.serve_static_assets = true config.assets.compile = true config.assets.js_compressor = :uglifier config.assets.digest = true // delete precompiled assets bundle exec rake assets:clobber --trace RAIL_ENV=production bundle exec rake assets:clobber --trace 

imágenes copiadas al público / activos de la aplicación / activos. entonces:

 // tests should pass bundle exec rake assets:precompile --trace RAILS_ENV=production bundle exec rake assets:precompile --trace git commit git push 

Y estaba funcionando bien en Heroku.

Tuve un problema similar al mostrar solo imágenes. Siendo nuevo en los Rails que no sabía que podría usar:

<%= image_tag("fileName.png", alt: "File Name Fancy", size: "100x100")%>

En lugar de html tradicional.

La etiqueta image_tag se explica en la API de rails, pero creo que su uso se explica mejor aquí: http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/image_tag

Todo lo que agregué a mi aplicación fue esta joya: gem 'rails_12factor', group: :production

Como se describe en la documentación de heroku asset-pipeline. https://devcenter.heroku.com/articles/rails-4-asset-pipeline

Intenté muchas soluciones también, pero encontré una solución y una explicación invaluables 1. Heroku busca activos en la carpeta pública y eso significa que tiene que precomstackr sus activos, pero si usted fuera como yo, alguien buscaría una forma de precomstackr mis activos cuando mi entorno de desarrollo está configurado en gem sqlite y el conjunto de producción en pg, entonces harías esto.

en su production.rb

 config.serve_static_assets = true 

si no tiene gem pg instalada, necesita comentarla y cambiar su entorno de producción para usar gem sqlite y ejecutar esto

 RAILS_ENV=production bundle exec rake assets:precompile 

Cuando todos los recursos se hayan precomstackdo, vuelva a la configuración predeterminada y añada git., commit y push para heroku.

Las imágenes no se servirán como activos por defecto, solo css y js. Deberías mirar la respuesta de

Syed Ehtsham Abbas en esta pregunta Heroku NO comstack archivos en las tuberías de activos en Rails 4