Bad source map path in subfolder install

My subfolder install kept giving errors in Firefox console about the fact that it is unable to find source maps.

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

As you can see, the /community path prefix is missing from the source map URL.

So I did a little digging.

lib/tasks/assets.rake does this:

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

Now cdn_relative_path in lib/global_path.rb looks like this.

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

As you can see, both cdn_path and upload_cdn_path eventually call the path method which makes sure that the subfolder is being prefixed. However, cdn_relative_path does not call the path method, it just returns its parameter (called… path).

BTW I think cdn_path needs to return path(p) in the middle part of the ternary as well?

1 „Gefällt mir“

@sam is the expert on source maps

@david has fussed with this in the past, but yeah getting the paths right for CDN + subfolder is not easy. I am open to a PR that fixes it provided this is very targeted at your magic combo and does not regress any places that work now.

3 „Gefällt mir“

@sam Do we have some solutions for this issue with a wrong source map? I have the same problem with subfolder install and Fastly CDN

My recommendation is just to wait a while, we are moving to ember CLI which will replace this entire pipeline.

2 „Gefällt mir“

@sam When are we moving to ember CLI? We have the same problem with subfolder install and Fastly CDN

This move is in progress, you can already develop on local using ember cli, a few more months out.

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.