Percorso source map errato nell'installazione in sottocartella

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?

1 Mi Piace

@sam è l’esperto di source map

@david ci ha lavorato in passato, ma sì, impostare correttamente i percorsi per CDN + sottocartella non è facile. Sono aperto a una PR che lo risolva, a patto che sia molto mirata alla tua combinazione magica e non rompa nulla di ciò che funziona già.

3 Mi Piace

@sam Abbiamo alcune soluzioni per questo problema con una source map errata? Ho lo stesso problema con l’installazione in una sottocartella e Fastly CDN.

Il mio consiglio è di aspettare un po’; stiamo passando a Ember CLI, che sostituirà l’intera pipeline.

2 Mi Piace

@sam Quando passeremo a Ember CLI? Abbiamo lo stesso problema con l’installazione in sottocartella e Fastly CDN

Questa transizione è in corso: puoi già sviluppare in locale utilizzando Ember CLI, mancano ancora pochi mesi.

2 Mi Piace

Credo che questo dovrebbe essere risolto con ember-cli? @david sapresti dirmi se è così?

2 Mi Piace

Sì, ho apportato diversi miglioramenti alle source map nelle ultime settimane, che si applicano sia alle pipeline ‘legacy’ che a quelle Ember-CLI.

Ho appena controllato uno dei nostri siti ospitati in una sottocartella su tests-passed e le cose sembrano funzionare molto meglio :ok_hand:

5 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 12 giorni. Non sono più consentite nuove risposte.