tools portable learn instal cli ruby-on-rails heroku

ruby on rails - portable - Rieles 4 imágenes que no se cargan en heroku



learn heroku (9)

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 precompilar sus activos, pero si usted fuera como yo, alguien buscaría una forma de precompilar mis activos cuando mi entorno de desarrollo está configurado en gema 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 gema 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 precompilado, vuelva a la configuración predeterminada y añada git., commit y push para heroku.

Pasé la mayor parte del día intentando cargar imágenes en mi aplicación heroku. Todo lo que intento 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 sintaxis en mi CSS como;

#signin { background: url(<%= asset_path ''sf.png'' %>); 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 precompilación siempre es exitosa.

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



Necesitaba combinar varias soluciones para hacer 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é precompilar 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 sintaxis 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 precompilando 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 precompila 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.


Rails (''4.1.5'') Tuve un problema similar de imágenes que no se muestran en Heroku pero que aparecen localmente. No utilizo gemas 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 rieles 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


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 .