Ao clicar, chamando _ember_jquery no caminho errado

Tenho estado a depurar um problema que estou a ter com os dropdowns do BS4 que não estão a funcionar e descobri que, ao clicar, o _ember_jquery.js está a ser chamado em /assets/var/www/discourse/public/assets em vez de /assets (que é onde ele está realmente localizado). Não sei por que o caminho completo do servidor está a ser anexado. Até onde sei, não foram feitas alterações de configuração relevantes, e a única coisa em que tenho trabalhado é a adição de um plugin simples e personalizado (sim, o problema persiste mesmo com o plugin removido). Sou relativamente novo no Discourse, então qualquer opinião sobre o assunto seria muito apreciada. Por favor, avise se precisar de informações adicionais.

Acredito que este seja um problema relacionado à forma como o source map está sendo gerado, causado por este PR: DEV: Bump uglifyjs by romanrizzi · Pull Request #7834 · discourse/discourse · GitHub.

Anteriormente, a opção relativa -p era utilizada, então os caminhos do source map pareciam com [‘admin…js.map’]. A partir da versão 2.4.beta9, a opção -p não está mais disponível devido à mudança para o uglify 3, fazendo com que os caminhos do source map se tornassem absolutos, como [‘/var/www/discourse/public/assets/admin…js.map’]. Isso causava erros 404 nos source maps durante a depuração, já que o arquivo real estava em /assets, mas o mapa indicava que estava em /var/www/…/assets.

Uma solução alternativa que encontrei foi modificar lib/tasks/asset.rake para adicionar a opção base ao parâmetro do source map, ficando assim:

  base = assets_path + ((d = File.dirname(from)) == "." ? "" : "/#{d}")

  cmd = <<~EOS
    uglifyjs '#{assets_path}/#{from}' -m -c -o '#{to_path}' --source-map "base='#{base}',root='#{source_map_root}',url='#{source_map_url}'" --output '#{to_path}'
  EOS

Não posso garantir que funcione para todos, mas permite que eu faça a depuração por meio dos source maps sem os erros 404.

Precisávamos corrigir isso, @sam?

Sim, estamos acompanhando isso em outro lugar. Vamos adicionar uma nota no TODO para que o @Roman fique ciente.

Desculpe pelo atraso. O problema foi corrigido e já foi aplicado nas versões beta e estável. Adicionei o atributo base, que contém o caminho para o recurso, deixando o atributo source apenas com o nome do arquivo.

https://review.discourse.org/t/fix-ensure-sourcemaps-source-is-correct-uses-the-full-assets-path-this-time-8774/8506