Mauvais chemin de source map dans l'installation du sous-dossier

Mon installation dans un sous-dossier continuait de générer des erreurs dans la console Firefox indiquant qu’il était impossible de trouver les source maps.

Erreur de source map : la requête a échoué avec le statut 404 URL de la ressource : [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) URL de la source map : /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map

Comme vous pouvez le constater, le préfixe de chemin /community manque dans l’URL de la source map.

J’ai donc fait un peu d’investigation.

lib/tasks/assets.rake fait ceci :

  assets = cdn_relative_path("/assets")
  source_map_root = assets + ((d = File.dirname(from)) == "." ? "" : "/#{d}")

Maintenant, cdn_relative_path dans lib/global_path.rb ressemble à ceci :

module GlobalPath
  def path(p)
    "#{GlobalSetting.relative_url_root}#{p}"
  end

  def cdn_path(p)
    GlobalSetting.cdn_url.blank? ? p : "#{GlobalSetting.cdn_url}#{path(p)}"
  end

  def upload_cdn_path(p)
    if SiteSetting.Upload.s3_cdn_url.present?
      p = Discourse.store.cdn_url(p)
    end

    (p =~ /^http/ || p =~ /^\/\//) ? p : cdn_path(p)
  end

  def cdn_relative_path(path)
    if (cdn_url = GlobalSetting.cdn_url).present?
      URI.parse(cdn_url).path + path
    else
      path
    end
  end

Comme vous pouvez le voir, cdn_path et upload_cdn_path appellent tous deux la méthode path, ce qui garantit que le sous-dossier est bien préfixé. Cependant, cdn_relative_path n’appelle pas la méthode path ; elle renvoie simplement son paramètre (nommé… path).

Au fait, je pense que cdn_path devrait également retourner path(p) dans la partie centrale de l’opérateur ternaire ?

1 « J'aime »

@sam est l’expert des source maps

@david a déjà jonglé avec ça par le passé, mais oui, bien configurer les chemins pour CDN + sous-dossier n’est pas simple. Je suis ouvert à une PR qui corrige cela, à condition qu’elle cible très précisément votre combinaison magique et ne casse rien de ce qui fonctionne actuellement.

3 « J'aime »

@sam Avez-vous des solutions pour ce problème de source map incorrecte ? Je rencontre le même problème avec une installation dans un sous-dossier et Fastly CDN.

Ma recommandation est simplement d’attendre un peu : nous passons à Ember CLI, qui remplacera l’intégralité de cette chaîne de traitement.

2 « J'aime »

@sam Quand allons-nous passer à Ember CLI ? Nous rencontrons le même problème avec l’installation dans un sous-dossier et le CDN Fastly.

Cette transition est en cours : vous pouvez déjà développer en local avec Ember CLI. Quelques mois de plus et ce sera prêt.

2 « J'aime »

Je pense que cela devrait être résolu avec ember-cli ? @david sauriez-vous si c’est le cas ?

2 « J'aime »

Oui, j’ai apporté un certain nombre d’améliorations aux source-map au cours des dernières semaines, qui s’appliquent aux pipelines « legacy » et Ember-CLI.

Je viens de vérifier l’un de nos sites hébergés dans un sous-dossier sur tests-passed, et les choses semblent beaucoup mieux fonctionner :ok_hand:

5 « J'aime »

Ce sujet a été automatiquement fermé après 12 jours. Les nouvelles réponses ne sont plus autorisées.