Schlechter Source-Map-Pfad bei Installation im Unterordner

Meine Installation im Unterordner lieferte weiterhin Fehler in der Firefox-Konsole, weil die Source Maps nicht gefunden werden konnten.

Source map error: request failed with status 404 Resource URL: [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) Source Map URL: /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map

Wie Sie sehen, fehlt der Pfad-Präfix /community in der Source-Map-URL.

Also habe ich ein wenig nachgeforscht.

lib/tasks/assets.rake macht Folgendes:

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

In lib/global_path.rb sieht cdn_relative_path wie folgt aus:

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

Wie Sie sehen, rufen sowohl cdn_path als auch upload_cdn_path letztendlich die Methode path auf, die sicherstellt, dass der Unterordner als Präfix hinzugefügt wird. Allerdings ruft cdn_relative_path die Methode path nicht auf; es gibt einfach seinen Parameter (der … path heißt) zurück.

Übrigens: Ich denke, cdn_path sollte im mittleren Teil des Ternärs ebenfalls path(p) zurückgeben?

1 „Gefällt mir“

@sam ist der Experte für Source Maps

@david hat das in der Vergangenheit schon mal angepasst, aber ja, die Pfade für CDN + Unterordner korrekt hinzubekommen, ist nicht einfach. Ich bin offen für einen PR, der das behebt, solange er sehr gezielt auf deine magische Kombination ausgerichtet ist und keine bestehenden funktionierenden Stellen beeinträchtigt.

3 „Gefällt mir“

@sam Haben wir Lösungen für dieses Problem mit einer falschen Source Map? Ich habe das gleiche Problem bei der Installation in einem Unterordner und mit Fastly CDN.

Meine Empfehlung ist, einfach noch etwas zu warten. Wir wechseln zu Ember CLI, was diese gesamte Pipeline ersetzen wird.

2 „Gefällt mir“

@sam Wann wechseln wir zu Ember CLI? Wir haben das gleiche Problem mit der Installation in Unterordnern und dem Fastly CDN.

Dieser Schritt ist in Arbeit, du kannst bereits lokal mit Ember CLI entwickeln, in einigen Monaten ist es soweit.

2 „Gefällt mir“

Ich glaube, das sollte mit ember-cli sortiert werden? @david, wissen Sie, ob das der Fall ist?

2 „Gefällt mir“

Ja, ich habe in den letzten Wochen eine Reihe von Verbesserungen an Source Maps vorgenommen, die sowohl für ‘Legacy’- als auch für Ember-CLI-Pipelines gelten.

Ich habe gerade eine unserer gehosteten Unterordner-Websites auf tests-passed überprüft, und die Dinge scheinen viel besser zu funktionieren :ok_hand:

5 „Gefällt mir“

Dieses Thema wurde nach 12 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.