Caminho de source map inválido na instalação de subpasta

Minha instalação em subpasta continuava gerando erros no console do Firefox sobre a incapacidade de encontrar os source maps.

Erro de source map: solicitação falhou com status 404 URL do recurso: [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) URL do Source Map: /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map

Como você pode ver, o prefixo de caminho /community está ausente na URL do source map.

Então, fiz uma pequena investigação.

lib/tasks/assets.rake faz o seguinte:

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

Agora, cdn_relative_path em lib/global_path.rb se parece com isso:

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

Como você pode ver, tanto cdn_path quanto upload_cdn_path acabam chamando o método path, que garante que o subpasta esteja sendo prefixado. No entanto, cdn_relative_path não chama o método path; ele apenas retorna seu parâmetro (chamado… path).

Aliás, acho que cdn_path também precisa retornar path(p) na parte intermediária do operador ternário?

1 curtida

@sam é o especialista em source maps

@david já mexeu nisso no passado, mas sim, acertar os caminhos para CDN + subpasta não é fácil. Estou aberto a um PR que corrija isso, desde que seja muito direcionado à sua combinação mágica e não quebre nada que já funcione atualmente.

3 curtidas

@sam Temos alguma solução para esse problema com um source map incorreto? Estou com o mesmo problema em uma instalação em subpasta e com o CDN Fastly.

Minha recomendação é apenas esperar um pouco; estamos migrando para o Ember CLI, que substituirá todo esse pipeline.

2 curtidas

@sam Quando vamos migrar para o Ember CLI? Temos o mesmo problema com instalação em subpasta e o Fastly CDN.

Essa mudança está em andamento; você já pode desenvolver localmente usando o Ember CLI. Mais alguns meses e estará pronto.

2 curtidas

Acredito que isso deva ser resolvido com o ember-cli? @david você saberia dizer se esse é o caso?

2 curtidas

Sim, fiz várias melhorias no source-map nas últimas semanas, que se aplicam a ambos os pipelines ‘legacy’ e Ember-CLI.

Acabei de verificar um dos nossos sites hospedados em subpasta no tests-passed, e as coisas parecem estar funcionando muito melhor :ok_hand:

5 curtidas

Este tópico foi automaticamente fechado após 12 dias. Novas respostas não são mais permitidas.