Imagen de activos estáticos en la aplicación de Rails que no se muestra en la producción de Heroku

Intenté precomstackr mis imágenes antes del despliegue con el comando:

$ RAILS_ENV=production bin/rake assets:precompile

Estoy usando image_tag ‘s en mis plantillas que funcionan en desarrollo.

Actualización: se dice que config.serve_static_files por defecto es true en dev, pero luego se desactiva en producción porque los activos deben proporcionarse a través de su servidor web. Actualmente solo estoy usando el nivel gratuito en heroku y todavía estoy ejecutando webrick, así que tengo este conjunto como verdadero, pero no tengo suerte.

Actualización 2: Cuando configuro config.serve_static_files en false , heroku no ve ninguno de mis activos, todos mis estilos desaparecen y las imágenes permanecen sin fundar. A pesar de que heroku envía un mensaje de advertencia al enviar un mensaje al maestro, dice que todos los ” config.serve_static_files sí habilitan el servicio de todo en la carpeta pública y no están relacionados con la canalización de activos”. Supongo que no está relacionado con la canalización de activos en el sentido de que solo está sirviendo los activos en la carpeta pública y no mira nuestro directorio de activos. También veo que heroku ejecuta el comando de precomstackción en el despliegue, por lo que no necesito hacer eso cada vez.

Esto me hace preguntarme si el problema podría ser la forma en que llamo a mis activos usando la image_tag , pero no estoy seguro de por qué sería eso.

Actualización 3: La guía de Rails para la canalización de activos dice “En vistas regulares, puede acceder a las imágenes en el directorio público / de activos / imágenes de esta manera: . Estoy llamando a mi imagen usando esta convención como esa , pero la imagen aún no aparecerá.

Actualización 4: ver mi respuesta.

Si llegó a esta publicación y está utilizando Heroku, Heroku solo aceptará sus imágenes si utiliza la extensión de archivo de imagen.

Esto funcionará:

 <%= image_tag "lab49.png", size: "80x30" %> 

Esto no funcionará (aunque lo hará localmente):

 <%= image_tag "lab49", size: "80x30" %> 

Algo a tener en cuenta: tenía archivos jpeg en mi carpeta de activos / imágenes. Cuando ejecuté los activos de rake: precomstackción se convirtieron en archivos .jpg. Después de cambiarles el nombre en mi carpeta de activos / imágenes a .jpg, precomstackrlos y presionarlos de nuevo, se mostraron en Heroku muy bien.