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 ?