Je devrais ignorer la précompilation

Bonjour,

Je devrais sauter le processus [bundle exec rake assets:precompile] dans l’application ./launcher bootstrap pour des raisons de sécurité, car il ne devrait pas accéder à la base de données.

J’ai simplement modifié le modèle web pour sauter cette étape, et l’exécution de Discourse a réussi. Cependant, l’écran est uniquement vide. Il y a un problème avec les ressources statiques (assets), comme indiqué ci-dessous :

discourse-details.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
discourse-local-dates.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
discourse-presence.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
discourse-narrative-bot.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
docker_manager.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
lazy-yt.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
poll.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
discourse-presence.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
docker_manager.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
lazy-yt.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()
poll.js:1 Échec du chargement de la ressource : le serveur a répondu avec un statut 404 ()

Référence : Rake assets:precompile without database

Nous stockons les thèmes dans la base de données (ils sont édités dans l’interface d’administration), donc le CSS est contenu dans PostgreSQL. Vous avez donc besoin de la connexion à la base de données au moment de la compilation pour pouvoir précompiler ces éléments.

J’ai donc réussi à faire une “précompilation” dans une zone non sécurisée avec la même base de données, et tout fonctionne parfaitement. J’ai vérifié que les thèmes et le CSS sont bien présents dans la base de données.

Je me suis connecté au serveur “sans précompilation” avec la même base de données, mais je n’arrive pas à obtenir les fichiers CSS, JS et de thème.

Je souhaite copier-coller les fichiers d’assets de la zone non sécurisée vers le serveur cible. Quel chemin de répertoire dois-je utiliser pour coller les fichiers ? Ou y a-t-il autre chose à faire ?

Ou bien… Existe-t-il une méthode pour obtenir les assets (thèmes, CSS, JS…) en sautant l’étape de “précompilation” ?

Dans l’attente de votre réponse rapide. Merci.

Discourse n’est pas pris en charge dans une telle configuration. Les actifs nécessitant un accès à la base de données sont bien reconstruits dynamiquement après les modifications pendant le démarrage de l’application, mais ils partagent le même pipeline d’actifs et doivent donc être précompilés en même temps que tous les autres.

Tenter de sauter la précompilation des actifs signifierait que seuls les actifs dynamiques seraient disponibles, sans aucun des actifs de base.

3 « J'aime »