Al hacer clic, se llama a _ember_jquery en la ruta incorrecta

He estado depurando un problema que tengo con los menús desplegables de BS4 que no funcionan y descubrí que, al hacer clic, _ember_jquery.js se está llamando desde /assets/var/www/discourse/public/assets en lugar de desde /assets (que es donde realmente se encuentra). No sé por qué se está añadiendo la ruta completa del servidor. Hasta donde sé, no se han realizado cambios relevantes en la configuración, y lo único en lo que he estado trabajando es añadir un plugin personalizado sencillo (sí, el problema persiste incluso con el plugin eliminado). Soy bastante nuevo en Discourse, así que cualquier opinión al respecto sería muy apreciada. Por favor, avísame si necesitas información adicional.

Creo que este es un problema con la forma en que se está generando el mapa de origen, causado por esta PR: DEV: Bump uglifyjs by romanrizzi · Pull Request #7834 · discourse/discourse · GitHub.

Anteriormente, se utilizaba la opción relativa -p, por lo que las rutas de los mapas de origen se veían así: [‘admin…js.map’]. A partir de la versión 2.4.beta9, la opción -p ya no está disponible debido al cambio a uglify 3, por lo que las rutas de los mapas de origen eran absolutas, como [‘/var/www/discourse/public/assets/admin…js.map’]. Esto provocó que los mapas de origen devolvieran un error 404 al depurar, ya que el archivo real estaba en /assets, pero el mapa indicaba que estaba en /var/www/…/assets.

Una solución alternativa que encontré fue modificar lib/tasks/asset.rake para agregar la opción base al parámetro del mapa de origen, de modo que se vea así:

  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

No puedo garantizar que funcione para todos, pero me permite depurar mediante mapas de origen sin los errores 404.

¿Teníamos que arreglar esto, @sam?

Sí, lo estamos siguiendo en otro lugar; añadiremos una nota en el TODO para que @Roman esté al tanto.

Perdón por la demora; el problema ya está solucionado y se ha retrotraído a las versiones beta y estable. Añadí el atributo base, que contiene la ruta al activo, dejando el atributo source solo con el nombre del archivo.

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