[RUBY] [Rails] À propos de l'erreur selon laquelle l'image n'est pas affichée dans l'environnement de production

introduction

Que faire lorsque l'image est affichée fermement dans l'environnement local, mais que l'image disparaît lorsqu'elle est déployée dans l'environnement de production.

environnement

・ Rails 6.0.3. ・ Haml

Statut

Comme le montre la notation ci-dessous, l'image a été spécifiée comme chemin en utilisant la méthode d'assistance Rails ʻimage_tag`, et elle était bien affichée dans l'environnement local.


= image_tag "assets/material/icon/icon.png "

Cependant, lorsque je l'ai déployé, l'image a disparu. (Bien que cette notation soit également suspecte)

Bien entendu, l '"image de fond" décrite dans le fichier "scss" n'était pas non plus listée (cette correspondance est décrite en bas).

Cause

Dans un environnement de production, les images seront également compilées, les noms des fichiers image changeront et les répertoires changeront!

La différence entre l'environnement de production et l'environnement local est Le chemin change (app / assets / images / icon.png => /assets/icon.png) Le nom change (icon.png => icon-xxx… .png) * xxx… est digest Cela va changer!

Contre-mesures

Utilisez l'option Rails appelée ʻassets_path ()`. Ceci est pratique et peut être déployé dans l'environnement de production, et même si le nom du fichier ou du répertoire change, il peut être géré localement ou en production avec celui-ci!

Plus précisément, modifiez comme suit


= image_tag asset_path("assets/material/icon/icon.png ")

Je pense que cela fonctionnera ... Il n'est plus affiché même dans l'environnement local. .. .. ..

Le résultat est le même même si vous déployez avec une mauvaise source (naturellement)

Pourquoi asset_path ne fonctionne pas

L'option ʻasset_path correspond aux fichiers directement sous ʻapp / assets / images, mais apparemment elle ne correspond pas aux fichiers dans le répertoire au-delà.

Correspondance

Toutes les images gérées dans le répertoire ont été déplacées directement sous ʻapp / assets / images`, et la notation a été corrigée comme suit.


= image_tag asset_path("icon.png ")

Maintenant, quand je le déploie, l'image est enfin affichée! !!

En résumé, la solution était d'utiliser l'option ʻasset_path et de placer le fichier image directement sous ʻimages.

[scss] À propos de l'image d'arrière-plan

Encore une fois, le simple fait de spécifier le chemin du fichier image comme indiqué ci-dessous ne fonctionnait pas.


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

Correspondance

Avec ʻimage-url`, cela fonctionne à la fois localement et en production.


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

Vous pouvez le gérer en l'écrivant comme ceci. Bien sûr, spécifiez l'image directement sous ʻapp / assets / images`

Il est important de noter ici qu'il n'y a pas d'espace après le «: (deux-points)». La description de SCSS était addictive car elle était écrite avec un espace demi-largeur après les deux points. Je n'ai donc pas pu trouver la cause sans savoir que c'était faux.

Maintenant, lorsque je le déploie, l'image s'affiche normalement! !!

Recommended Posts

[Rails] À propos de l'erreur selon laquelle l'image n'est pas affichée dans l'environnement de production
[Erreur] L'application ne s'affiche pas dans l'environnement de production
L'image n'est pas affichée dans l'environnement de production
À propos du problème selon lequel l'image n'est pas affichée après le déploiement AWS
[Rails] Réinitialisez la base de données dans l'environnement de production
Le message d'erreur du périphérique ne s'affiche pas correctement.
Comment résoudre le problème que l'image du site Web ne s'affiche pas après le déploiement sur heroku dans Rails 5
Une erreur de serveur interne 500 se produit dans l'environnement de production Rails
[Cloud9] Yay! You are on Rails! N'est pas affiché dans le didacticiel sur les rails
Lorsque le projet n'est pas affiché dans eclipse
J'obtiens Mysql2 :: Error :: ConnectionError dans l'environnement de production
[Rails] fields_for n'est pas affiché
[Rails] Que faire lorsque l'image Refile n'est pas affichée lors de l'écriture du traitement au moment de l'erreur de routage
[Android Studio] À propos du fait que la vue de conception n'est pas affichée lors de l'utilisation de TextClock
Une solution à une erreur qui vous met en colère parce que vous ne suivez pas le paramètre par défaut de MySQL ONLY_FULL_GROUP_BY en production et qu'il n'est pas unique
À propos du symbole <%%> dans Rails erb
À propos de l'erreur survenue lors de l'ajout d'un nom de colonne dans les rails (rails db: migrate, rails db: rollback, add)
Les données ne sont pas enregistrées dans Rails.
Le référentiel ... n'est pas une erreur signée dans docker build apt-get update
Rails6: Extraire l'image dans le texte d'action
Le problème que le contenu des paramètres est complètement affiché dans la vue [Rails]
Puma --Nignx est une voie de sortie lorsque les rails s -e production -d ne fonctionnent pas dans l'environnement
Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs
À propos du cas où ("b" .. "aa") ne pourrait pas être utilisé dans Ruby Range
(Capistrano) Après le déploiement, j'obtiens une erreur Désolé ... dans l'environnement de production.
Connexion SSL Rails5.1 + puma dans un environnement de production local
Lorsque nginx conf n'est pas bien reflété dans l'environnement AWS Elastic Beanstalk + Rails
[Ruby On Rails] Erreur de test utilisant le client RSpec MySQL n'est pas connecté
Comment résoudre l'erreur'ActionView :: Template :: Error (L'actif "application.css" n'est pas présent dans le pipeline d'actifs. '"Lors de la précompilation d'actifs Rails
[Rails] Je veux tout réinitialiser car les données de l'environnement local sont incorrectes! Que faire avant ça
[Java] Quelque chose est affiché comme "-0.0" dans la sortie
Que faire à propos de "Un serveur est déjà en cours d'exécution ..." qui s'est produit sans désactiver le serveur de rails dans le terminal
Ebean.update () n'est pas exécuté dans le modèle hérité.
Comment gérer l'erreur yaml.scanner.ScannerError: lors de la recherche du jeton suivant apparu lors de la création d'un environnement Rails avec Docker
[Ruby on rails] Lors de l'exécution de la commande heroku, bash: heroku: command not found s'affiche. [Tutoriel Rails]
[Rails] Comment supprimer les données MySQL de l'environnement de production après les avoir placées dans l'environnement de développement
Traitement lorsqu'un ID qui n'existe pas dans la base de données est entré dans l'URL
Principes de base de la gestion des erreurs Java - L'histoire qui capture n'est prise qu'au premier plan
Erreur de migration après avoir associé Activerecord dans l'environnement Rails5 + Docker (2)
Erreur de migration après l'association Activerecord dans l'environnement Rails5 + Docker
Erreur de valeur de vérification survenue dans l'environnement de clustering
Notez que je suis tombé sur la construction de l'environnement Rails
Questions sur l'implémentation de la fonctionnalité Like (Ajax) dans Rails
SSL dans l'environnement local de Docker / Rails / puma
[Rails] Comment afficher les images dans la vue
L'histoire que .java est également construite dans Unity 2018
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local