La mia installazione in sottocartella continuava a generare errori nella console di Firefox riguardo all’incapacità di trovare le source map.
Errore della source map: richiesta fallita con status 404 URL della risorsa: [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) URL della Source Map: /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map
Come puoi vedere, il prefisso del percorso /community manca nell’URL della source map.
Quindi ho fatto un po’ di ricerche.
lib/tasks/assets.rake fa questo:
assets = cdn_relative_path("/assets")
source_map_root = assets + ((d = File.dirname(from)) == "." ? "" : "/#{d}")
Ora, cdn_relative_path in lib/global_path.rb è così:
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
Come puoi vedere, sia cdn_path che upload_cdn_path chiamano infine il metodo path, che assicura che la sottocartella venga aggiunta come prefisso. Tuttavia, cdn_relative_path non chiama il metodo path, ma restituisce semplicemente il suo parametro (chiamato… path).
BTW, penso che cdn_path debba restituire anche path(p) nella parte centrale dell’operatore ternario?